我有一个执行一项功能的C++程序。它将一个大型数据文件加载到数组中,接收一个整数数组并在该数组中执行查找,返回一个单个整数。我目前是将每个整数作为参数调用该程序,如下所示:
我还有一个 Ruby 脚本,我想让这个脚本利用 C++ 程序。 目前,我是这样做的。
Ruby 代码:
这一切都运作正常,但我的问题是每次 Ruby 进行此调用时,C++ 程序都必须重新加载数据文件(超过 100MB)-非常缓慢,效率很低。如何重写我的 C++ 程序,仅加载一次文件,使我能够通过 Ruby 脚本进行多次查找而无需每次重新加载文件。使用套接字是否是明智的方法?将 C++ 程序编写为 Ruby 扩展?显然,我不是一位有经验的 C++ 程序员,所以感谢您的帮助。
$ ./myprogram 1 2 3 4 5 6 7
我还有一个 Ruby 脚本,我想让这个脚本利用 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
这一切都运作正常,但我的问题是每次 Ruby 进行此调用时,C++ 程序都必须重新加载数据文件(超过 100MB)-非常缓慢,效率很低。如何重写我的 C++ 程序,仅加载一次文件,使我能够通过 Ruby 脚本进行多次查找而无需每次重新加载文件。使用套接字是否是明智的方法?将 C++ 程序编写为 Ruby 扩展?显然,我不是一位有经验的 C++ 程序员,所以感谢您的帮助。