|
|
|
|
|
by simonh
4846 days ago
|
|
Interesting. I wouldn't have though Java was suitable for HFT due to garbage collection pauses playing havoc with your system determinism and performance reliability. I supported a derivatives trading system written in java that was canned due to performance issues, and where I am now we had java FIX protocol gateways that we've replaced with C++ components, again for performance reasons. I'm not saying java has performance problems in general, I do understand that for many applications it's a good and performant option, but when you're dealing with sub-millisecond response times it has issues. If anyone is using Java for applications like this, I'd love to know how they get round these issues. |
|
* look at memory mapped data in java (basically using sun.misc.Unsafe lets you deal with things like malloc and free)
* look at increasing use of primitives and collections that utilize primitives appropriately
* properly profile / size your eden space
yada yada ... i think a lot of HN people have generally just wrote off java as not as fast as C, not as productive as python/ruby, and not as exciting as lisp, haskell, FOTM. Java's a fine tool like anything else...just need to use it appropriately.