4

さまざまなファイルのバッチ ファイルを使用してタガーを実行しようとしています。これは私のコードです:

String runap1="cd spt1"+"\n"+"java -Xss8192K -Xms128m -Xmx640m -classpath stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -model models/bidirectional-wsj-0-18.tagger -textFile "+fff[g]+">tag\\"+r1+"\nexit" ;

FileWriter fw1 = new FileWriter("ac.bat");
BufferedWriter bw1 = new BufferedWriter(fw1);

bw1.write(runap1);
bw1.close();

Runtime rx = Runtime.getRuntime();
Process p = null;

try {
    p = rx.exec("cmd.exe /c start ac.bat");
} catch(Exception e) {
    System.out.println("Error");
} // TODO

try {
    Thread.sleep(15000);
} catch (InterruptedException e) {
    System.out.println("Thread interrupted");
}

これは処理に時間がかかり、私の PC は数回ハングします。タガーが一度だけロードできるように共有メモリを作成したいのですが、すべてのバッチファイルがその共有タガーを使用します。毎回タガーをロードするべきではありません。これどうやってするの?

4

1 に答える 1

1

メモリ マップド ファイルにデータを保存すると、コピーを追加することなく、複数のプロセスにわたってデータを複数回読み込むことができます。あるプロセスで変更を行い、別のプロセスで変更を確認することもできます。

これに関する問題は、オフ ヒープ メモリで作業する必要があることです。これは、データ ファイルが既に使用可能なバイナリ形式である場合に最も簡単に機能します。つまり、解析する必要はありません。

于 2013-07-20T13:18:14.773 に答える