T********i 发帖数: 2416 | 1 这个是很多年前的旧闻了。现在可能还是Java的,可能不是,已经没人关心了。
CME也是Java写的。以前做的很烂。动不动就是几十毫秒的latency。最近改进了很多,
至少不忙的时候响应在100us以内。
Hedge fund用Java做low latency的也很多。
不过,美国Stock exchange有很多,NASDAQ甚至不是最大的,也不是交易最多的。NYSE
和ARCA交易量都比NASDAQ高。NYSE的系统最烂。ARCA,BAT做的很好。应该都是C/C++的
系统。
用Java做Ultra low latency的交易。我也做了一套系统。总的来说,就是两套策略:
1. 预先分配好所有memory,确保运行中永远不会有GC。
2. 平时关闭GC,每天有几次(比如11:00AM, 2:00PM)停止交易,集中GC,然后再恢复交
易。
总之这正说明了语言其实并没有重要到非他不可的程度。最重要的是系统设计。
但是我是不会用Java做的,明显脱裤子放屁。而且,如果都做的对,Java系统明显比C+
+系统慢,这是共识。 |
d****i 发帖数: 4809 | 2 魏老师,弱弱的问一句,Java里面怎么预先分配好内存,object不是都是在heap上的吗?
NYSE
【在 T********i 的大作中提到】 : 这个是很多年前的旧闻了。现在可能还是Java的,可能不是,已经没人关心了。 : CME也是Java写的。以前做的很烂。动不动就是几十毫秒的latency。最近改进了很多, : 至少不忙的时候响应在100us以内。 : Hedge fund用Java做low latency的也很多。 : 不过,美国Stock exchange有很多,NASDAQ甚至不是最大的,也不是交易最多的。NYSE : 和ARCA交易量都比NASDAQ高。NYSE的系统最烂。ARCA,BAT做的很好。应该都是C/C++的 : 系统。 : 用Java做Ultra low latency的交易。我也做了一套系统。总的来说,就是两套策略: : 1. 预先分配好所有memory,确保运行中永远不会有GC。 : 2. 平时关闭GC,每天有几次(比如11:00AM, 2:00PM)停止交易,集中GC,然后再恢复交
|
l*********s 发帖数: 5409 | 3 allocate a big enough heap ?
吗?
【在 d****i 的大作中提到】 : 魏老师,弱弱的问一句,Java里面怎么预先分配好内存,object不是都是在heap上的吗? : : NYSE
|
T********i 发帖数: 2416 | 4 Create huge object pool。
其实C++的也一样。也是huge memory pool。
C++这个,要把所有的memory management都接管。我连STL的allocator都接管。当然为
了图省事,要explicitly用我的allocator。
吗?
【在 d****i 的大作中提到】 : 魏老师,弱弱的问一句,Java里面怎么预先分配好内存,object不是都是在heap上的吗? : : NYSE
|
d****i 发帖数: 4809 | 5 这个还是在runtime的呀?没有象C/C++那样的stack allocation.
【在 l*********s 的大作中提到】 : allocate a big enough heap ? : : 吗?
|
g*****y 发帖数: 7271 | 6 FT, stack也是runtime啊。no?
【在 d****i 的大作中提到】 : 这个还是在runtime的呀?没有象C/C++那样的stack allocation.
|
d****i 发帖数: 4809 | 7 of coz not
【在 g*****y 的大作中提到】 : FT, stack也是runtime啊。no?
|
j*****8 发帖数: 3635 | 8 可以考虑concurrent/realtime gc |
|
h*******u 发帖数: 15326 | 9 Lock free and object pool
【在 j*****8 的大作中提到】 : 可以考虑concurrent/realtime gc
|
H****S 发帖数: 1359 | 10 You can use sun unsafe to pre allocate large chunk of memory. In addition,
you can lots of low level thing using sun unsafe, like using a memory
pointer to modify object that is totally hidden from you at language level.
吗?
【在 d****i 的大作中提到】 : 魏老师,弱弱的问一句,Java里面怎么预先分配好内存,object不是都是在heap上的吗? : : NYSE
|
f******y 发帖数: 2971 | 11 你的memory pool是自己写的还是用boost的?
【在 T********i 的大作中提到】 : Create huge object pool。 : 其实C++的也一样。也是huge memory pool。 : C++这个,要把所有的memory management都接管。我连STL的allocator都接管。当然为 : 了图省事,要explicitly用我的allocator。 : : 吗?
|