Objectives
- Infrequent garbage collection
- The main drawback with a garbage collected language like C#/JAVA for a low latency financial application is that the GC can kick in at any time and freeze up all the threads for an indeterminate period. It's impossible to avoid garbage collection altogether but we need to minimise it so it becomes statistically insignificant compared to other lags.
- Accurate recreation of the 'feel' of market data in the GUI
- Reasonably rich GUI with backgrounds highlighting price changes
- Don't overwhelm the Dispatcher thread to keep the GUI responsive
Thoughts
- Throttle price updates to the DataModel
- Split core business logic from WPF in seperate Application Domain to prevent GUI triggering garbage collector