Quote from Josh_h34:
You're right that I want to avail myself of the realtime scheduling class on solaris.
The reason Java can't cut it for me is because I reduced the periodicity of my bars from 15 min to 1 min, now I have to monitor complex breadth indicators on about 800 highly liquid issues once a minute and the time series became 180,000 bars long per symbol.
That's 140MB of raw data, not to mention multiple other blocks of memory used for sorting, indicator data etc.
With all due respect for Java which I like a lot it takes more than a minute to do the number crunching and make some sense out of the new data. Even a minute of number crunching is too long for processing 1 min bars.
Rather than try to parallelize computations I opted for a high end workstation with lots of RAM and a fast vectorizing FPU and now I am looking to rewrite the code in c++ for speed.
Hopefully compiler optimizations will cut the processing time to 30 seconds or less.
What's the best c++ api out there for order entry and management?
Have you tried a profiling of your java program ? I used to find that some very little thing in your program can slow it up in a way you would not have suspected.
However, it's quite true that java garbage collector and memory management is really slow and unpredictable.