21得票4回答
在JVM中使用Scala/Akka进行高频交易

假设有一款使用Java编写的高频交易系统,需要(非常)低延迟,由于不可变性而产生了许多短暂的小对象(是否考虑使用Scala?),每秒连接数达到数千个,在事件驱动的架构中传递了大量的消息(使用akka和amqp?)。 对于专业人士来说,理论上最好的JVM 7调优方法是什么?哪种类型的代码可以让...

11得票5回答
我应该将“旋转”线程“绑定”到特定的核心吗?

我的应用程序包含几个延迟关键的线程,这些线程“旋转”,即从不阻塞。这样的线程预计会占据一个CPU核心的100%。然而,现代操作系统似乎经常将线程从一个核心转移到另一个核心。因此,例如,在Windows代码中:void Processor::ConnectionThread() { wh...

24得票2回答
Boost ASIO能否用于构建低延迟应用程序?

Boost ASIO能否用于构建低延迟应用程序,例如高频交易(HFT)? 因此,Boost.ASIO使用平台特定的最佳多路复用机制:IOCP、epoll、kqueue、poll_set、/dev/poll。 同时还可以使用带有TOE(TCP/IP卸载引擎)和OpenOnload(内核旁路B...

11得票2回答
为什么在繁忙自旋暂停后,JVM对相同代码块显示更高的延迟?

以下代码明确展示了一个问题,即:相同的代码块在忙等待暂停后变得更慢了。 请注意,我当然没有使用Thread.sleep。同时,请注意,没有条件导致HotSpot/JIT重新优化,因为我是使用数学运算改变暂停时间,而不是IF。 有一段数学运算的代码块需要计时。 首先,在开始测量之前,我暂停...

55得票7回答
为什么JVM需要预热?

我了解在Java虚拟机(JVM)中,需要进行预热,因为Java使用一种延迟加载的过程来加载类。因此,您需要确保在启动主要事务之前已经初始化对象。我是一名C++开发人员,没有遇到过类似的要求。 然而,我不理解的部分如下: 哪些代码部分应该进行预热? 即使我预热了某些代码部分,它会保持多长时...

11得票3回答
同一容器内不同进程之间的进程间通信

有哪些选项可实现在同一Jetty容器中运行的两个WAR之间的低延迟通信? 我基本上需要从另一个WAR调用一个服务,但不能承受将其作为Web服务调用的开销。 由于它们在同一JVM中运行,我希望避免使用RMI/JMS等,但我不知道还有什么其他选项? 我已经研究了Servlet之间的通信,但由...

18得票7回答
Linux下低延迟串行通信

我正在Linux上通过串口实现一种协议。该协议基于请求-响应模式,因此吞吐量受发送数据包并获得响应所需的时间限制。这些设备大多是基于ARM架构且运行Linux >=3.0。我在试图将往返时间降至10ms以下(115200波特率,8数据位,无校验,每个消息7字节)时遇到了麻烦。 哪种IO接口提...

8得票3回答
学习如何编写响应延迟要求的快速C++/Java/C#代码的最佳方法是什么?

有没有人能给我一些关于学习如何进行极低延迟编程的最佳方法的指导?我有很多编程书籍,但从未看到过一本侧重于编写极快代码的书籍。或者说书籍不是最好的前进方式吗? 来自专家的一些建议将不胜感激! 编辑:我认为我更多地是在提到CPU/内存绑定。

51得票9回答
现在的高频交易系统有多快?

你总是听到高频交易(HFT)以及算法有多么快。但我想知道,这些天什么样的速度才算得上快呢? 更新 我不是在考虑交易所和运行交易应用程序的服务器之间物理距离引起的延迟,而是程序本身引入的延迟。 更具体地说:从应用程序接收事件到该应用程序输出订单/价格的时间是多少?即从价格变动到交易成交的时...

8得票2回答
Java TCP/IP Socket写入性能优化

服务器环境 Linux/RedHat 6 cores Java 7/8 关于应用程序: 我们正在开发一个使用Java的低延迟(7-8毫秒)高速交易平台。多腿订单会在符合算法条件后发送。 问题 使用TCP/IP java.net.Socket API(使用java.io.Output...