2014-02-10 65 views
0

我正在使用Weka並保存了一個模型,我想使用該模型做一些預測。但是,我必須爲我的GUI使用C++,所以每次調用.jar文件時,我都會重新讀取模型,這會浪費很多時間。如何將模型存儲在內存中並直接從Java中使用它?或者有沒有更好的方法來做到這一點?如何將文件存儲在內存中並直接在Java中使用它?

回答

0

如果您正在使用JNI來使用DLL中的C/C++功能,則可以將您的字節數組存儲在您的DLL代碼的「內部」內存中。這是一個粗略的相當於一個靜態變量,像:

// ... includes, etc 

char myFile[]; 

void loadFile(char filePath*) { 
    // C code to size myFile and store the file contents in it 
    myFile = new char[whateverTheSizeOfTheFile]; 
    // ... 
} 

void unloadFile() { 
    delete[] myFile; 
} 

要記住,爲了回報在C保留的資源明確地調用unloadFile從Java代碼/ C++代碼

0

您可以使用Java中的內存映射文件。您可以以二進制格式存儲您想要的內容,然後將這些數據映射到內存中作爲單個操作。當您需要將這些數據複製到Weka可以理解的表單中時,就會出現問題double [],不幸的是這是不可避免的,除非Weka可以讀取DoubleBuffer或類似的東西。

相關問題