我正在开发一个应用程序,其中有两个程序同时运行:一个用C ++编写,另一个用MATLAB编写。
C ++程序定期生成三个数值作为输出。 MATLAB程序需要定期访问三个输出,但需要在不同的时间段内访问。
目前,我已使用 .txt
文件解决了这个问题。当例程完成时,C ++会写入这个文件,MATLAB会从中读取它。
但是,使用 textscan
命令,MATLAB需要大约1.5 ms才能使用Pentium I5-4250U读取.txt
。所以,我想知道是否有更快的方法来解决这个问题。
答案 0 :(得分:4)
如果不需要其他服务,C ++方将充当信息提供者( ZMQ.PUB
发布者),MATLAB方将充当信息订阅者( {{1 }} )。
这样,与消息传递相关的低级细节由分布式处理消息传递层解决,您的解决方案将受益于速度,现成的工具,并可分发到私有网格计算/云计算架构,使用相同的仪器,获得额外的性能等。
ZeroMQ具有C ++和MATLAB的绑定,因此这是一个开始并尝试从流程到流程的消息传递层方法的地方。
ZMQ.SUB
可以找到MATLAB绑定here。
有一些浮点数要发送,延迟将在数百甚至几十[usec]之下,因为你的通知提到数据调度的异步模式,所以localhost将花费一些时钟从localhost ZMQ检索数据.SUB队列。
更复杂的应用程序到应用程序信令是可能的,只是受到ZeroMQ Guide
的启发