我有一个执行一个功能的 c++ 程序。它将一个大数据文件加载到一个数组中,接收一个整数数组并在该数组中执行查找,返回一个整数。我目前正在使用每个整数作为参数调用程序,如下所示:
$ ./myprogram 1 2 3 4 5 6 7
我还有一个 ruby 脚本,我希望这个脚本能够利用 c++ 程序。目前,我正在这样做。
红宝石代码:
arguments = "1 2 3 4 5 6 7"
an_integer = %x{ ./myprogram #{arguemnts} }
puts "The program returned #{an_integer}" #=> The program returned 2283
这一切正常,但我的问题是每次 ruby 进行此调用时,c++ 程序都必须重新加载数据文件(超过 100mb)——非常慢,而且效率非常低。
如何重写我的 c++ 程序只加载一次文件,允许我通过 ruby 脚本进行多次查找,而无需每次都重新加载文件。使用套接字是一种明智的方法吗?将 c++ 程序编写为 ruby 扩展?
显然我不是一个经验丰富的 C++ 程序员,所以感谢您的帮助。