【发布时间】:2014-01-21 08:13:57
【问题描述】:
有没有什么有效的方法让 C 程序与 Windows、Linux 和 Mac OS X 上的 Java 程序对话?我尝试了一个简单的 TCP/IP-Server,但它会导致大量 CPU 负载。
没有更简单的方法吗?
【问题讨论】:
-
看看JNI
-
+1,但实际上它高度依赖于任务细节。您是否尝试过分析和调查对负载影响最大的因素?
-
您也可以尝试使用共享内存解决方案,但这一切都取决于分析和了解瓶颈是什么。没有这个,你就不能可靠地说明如何解决这个问题。
-
关于从 Java 高效访问共享内存。来自 odnoklassniki.ru(一个类似于 Facebook 的社交网络)的人讲述了他们如何获得一个基于 Java 的解决方案,在 2x Intel Xeon E5620、64 GB RAM 上提供 70K HTTP reqs/sec 和 3000Mb/s Linux下的共享内存。他们的故事在habrahabr.ru/company/odnoklassniki/blog/148139(俄语,但你可以从代码中了解)
-
JNI 不是一个选择,因为它不允许从 C 调用 Java 方法。但是数据只是一些小的 ASCII 文本(12 个字符),但每秒 250.000 个。
标签: java c communication