我有一个执行一个函数的C++程序。它将大数据文件加载到数组中,接收一个整数数组并在该数组中执行查找,返回一个整数。目前我正在打电话,每个整数程序作为参数,就像这样:在ruby脚本和正在运行的C++程序之间进行通信
$ ./myprogram 1 2 3 4 5 6 7
我也有一个红宝石脚本,我想这个脚本能利用C++程序。 目前,我正在这样做。
的Ruby代码:
arguments = "1 2 3 4 5 6 7"
an_integer = %x{ ./myprogram #{arguemnts} }
puts "The program returned #{an_integer}" #=> The program returned 2283
这是所有工作正常,但我的问题是,每次红宝石使得这个调用,C++程序必须重新加载数据文件(超过100MB) - 很速度慢,而且效率很低。
如何重写我的C++程序只加载一次文件,这使我可以通过ruby脚本进行多次查找,而无需每次重新加载文件。使用套接字是一个明智的方法?把C++程序写成ruby扩展?
显然我不是一个有经验的C++程序员,所以非常感谢您的帮助。