必须同时考虑硬件、系统和协议的设计
使用UDP而非TCP开发协议,并在应用层实现简单的ack-nak重传逻辑
尽量减少进程或线程消费和打包数据所需的上下文切换次数(最好为零)
选择操作系统的最佳选择器(如select、kqueue、epoll等)
使用具有大量内置缓冲区(FIFO)的高质量网卡和交换机
使用多个网卡,特别是针对下行和上行数据流
尽量减少其他设备或软件生成的中断请求(如果不需要,就移除它们)
减少互斥锁和条件的使用。在可能的情况下,使用无锁编程技术。利用架构的CAS能力。(无锁容器)
考虑单线程设计而非多线程设计-上下文切换非常昂贵。
了解并正确利用架构的缓存系统(L1/L2、RAM等)
优先掌握内存管理的完全控制权,而不是委托给垃圾回收器
使用高质量的电缆,尽量缩短电缆长度,减少扭曲和弯曲次数