Low latency programming

2019-03-07 20:08发布

I've been reading a lot about low latency financial systems (especially since the famous case of corporate espionage) and the idea of low latency systems has been in my mind ever since. There are a million applications that can use what these guys are doing, so I would like to learn more about the topic. The thing is I cannot find anything valuable about the topic. Can anybody recommend books, sites, examples on low latency systems?

12条回答
劫难
2楼-- · 2019-03-07 20:24

http://g-wan.com/ does it all in 200 KB with ANSI C scripts.

查看更多
Explosion°爆炸
3楼-- · 2019-03-07 20:25

Anything on realtime programming would fit the bill. It's not precisely what you're after, I suspect, but it's an extremely good place to start.

查看更多
甜甜的少女心
4楼-- · 2019-03-07 20:32

If you are speaking about low latency server design, these are some good pointers: http://www.kegel.com/c10k.html http://pl.atyp.us/content/tech/servers.html

查看更多
小情绪 Triste *
5楼-- · 2019-03-07 20:34

I work for a financial company that produces low latency software for communication directly with exchanges (for submitting trades and streaming prices). We currently develop primarily in Java. Whilst the low latency side isn't an area I work in directly I have a fair idea of the skillset required, which would include the following in my opinion:

  • Detailed knowledge of the Java memory model and techniques to avoid unnecessary garbage collection (e.g. object pooling). Some of the techniques used might typically be regarded as "anti-patterns" in a traditional OO-environment.
  • Detailed knowledge of TCP/IP and UDP multicast including utilities for debugging and measuring latency (e.g. DTrace on Solaris).
  • Experience with profiling applications.
  • Knowledge of the java.nio package, experience developing NIO-based scalable server applications, experience designing wire protocols. Also note that we typically avoid using frameworks and external libraries (e.g. Google Protobuf), preferring to write a lot of bespoke code.
  • Knowledge of FIX and commercial FIX libraries (e.g. Cameron FIX).

Unfortunately many of the skills can only be developed "on the job" as there's no substitute for the experience gained implementing a price server or trading engine based on a spec. from an exchange or vendor. However, it's also worth mentioning that our company at least tend not to look for specific experience in this (or other) niche areas, instead preferring to hire people with good analytical and problem solving skills.

查看更多
贼婆χ
6楼-- · 2019-03-07 20:36

If I remember correctly real time Java (RTSJ) is used in this area, though I couldn't find a good article to link to now.

查看更多
趁早两清
7楼-- · 2019-03-07 20:38

Take a look at ZeroMQ. http://www.zeromq.org

Read the whitepapers on that site and you'll get some insight into what is required for low latency programming.

查看更多
登录 后发表回答