java - 如何从 Java 有效地发布到 KDB Ticker Plant

标签 java kdb ticker q-lang exxeleron-q

我们有市场数据处理程序,可以向 KDB Ticker Plant 发布报价。为此,我们使用 exxeleron q java 库。不幸的是,延迟非常高:当我们尝试插入一批记录时,延迟会达到数百毫秒。您可以建议一些有关 KDB + Java 绑定(bind)的延迟技巧,因为我们需要非常快地发布。

最佳答案

此消息中没有足够的信息来给出完全合格的响应,但对 Java+KDB 执行了相同的操作后,实际上可以归结为消除可能性。这是常识,真的,没有什么 super 技术性的。

  • 确保异步插入
  • 验证是否是 exxeleron q java 导致了延迟。我不认为那里有数百毫秒的开销。
  • 验证您的tickerplant 所在的CPU 没有过载。考虑重新优化、核心绑定(bind)等
  • 分析您的网络延迟。另外,如果您使用的是 Linux,您可以尝试一些 tcp 调整,例如TCP_QUICKACK
  • 当您使用 Java 时,请更加明智地进行垃圾收集。尽管不能直接控制,但它具有高度可配置性。
  • 如果您发现tickerplant是延迟的根源,您可以将其重新编码以不写入磁盘 - 或者获取更快的本地磁盘。

还有很多建议,但问题有点太模糊了。

编辑 早在 2007 年,我们就使用普通的 c.java 管理着每秒 90k 行的插入率,当时使用的是旧服务器和非常旧版本的 KDB+。那是在以上几点经过多次之后。我相信您现在可以取得更多成就,关键是找到瓶颈所在并一一解决它们。

关于java - 如何从 Java 有效地发布到 KDB Ticker Plant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28135626/

相关文章:

java - 使用 Jdom 读取 xml 文件

python - Matplotlib:xticks 每 15 分钟,从整点开始

javascript - jQuery 光滑 slider : How to make a logo ticker slider

java - JSP 默认对象验证

java - 检测哪个复选框被触摸?数组 Java Android Studio

java - Java 和 PHP 中的 DES 加密

KDB+/Q 如何在函数内创建命名空间

kdb - [Q/KDB+] : wsfull when creating splayed table from csv using `.Q.fs`

kdb+/q : Check if argument has been supplied to the function call

go - 股票代码仍然存在于内存中