High-Frequency Trading (HFT) and low-latency trading are becoming one of the few preserves of C++. The fact that it is amenable to extensive optimisation, including micro-optimisations, has made it highly effective, some of the major trading systems are hybrid FGPA/C++ solutions or native C++ solutions.
I shall provide an analysis of some micro-optimisation techniques that have been successfully used, but also an investigation of the pitfalls that may arise. For example: Performance anomalies lead to a discovery of quirks in generated assembler due to different compiler versions. Exactly what is static branch-prediction, and how is it (ab)used? Why is counting the number of set bits of the remotest interest? And the "curious case of the switch-statement" will be investigated. Finally the performance of a fully-functional FIX-to-MIT/BIT format exchange link that uses all of these techniques will be examined.
Today most SOCs come with an Android BSP, some with no other option. This has been the case for several years and many vendors from traditional Linux Embedded have shipped Headless-Android Devices.
This talk describes this type of architecture, and the choices and difficulties you are faced with when trying to ship a traditional Linux Embedded system on a Headless-Android base. We will describe a system with a kiosk-mode type web GUI and therefore also talk about how to integrate Chromium in an embedded environment.
Have you tried to start using Test-Driven Development (TDD)? Do all the examples look fine in Java with its fancy testing frameworks, but the reality is that you write in C, for a uc8051,and can't even manage to make the code compile?
In this session we'll start will some real embedded code and an x86 compiler. We'll see how we can make the compiler and linker happy, and how can begin writing our first tests.
We've been told to keep things simple. It turns out, that's easily said than done. Creating something simple is, well, not really that simple.
If simple was sitting next to us, would we even recognize it? Is my design simple, is yours simple? How can we tell? That's a simple question, but the answer to it is... well come to this talk to find out.