Birmingham UK
Market Wizard
Experience: Intermediate
Platform: NinjaTrader
Broker: TST/Rithmic
Trading: YM/Gold
Posts: 3,633 since Dec 2012
Thanks Given: 17,423
Thanks Received: 8,426
|
Good points both, and there's the rub(s), the I/O and memory performance bottlenecks are often overlooked completely. Even if those are well scoped, most modern language and architecture choices are CPU pipeline stallers and multi-level cache destroyers par-excellence. To such an extent that good looking code may not actually be achieving anything like the available ooomph in the box.
A long time ago I used to write software opcode processing modules because it was far faster to process sequential chunks of in-cache data than it was to dispatch function calls and object accesses. Modern system architectures have made these sort of trade-offs even more complex, though usually they are ignored due to the high level of functionality required, which is hard enough to get right anyway.
Once you have some ideas of what you want to do, and to what sort and size of data, you can't beat writing a few harnesses and tests, and it's good fun too.
|