我有一個執行一個函數的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++程序員,所以非常感謝您的幫助。