がかかる私は、次のされておよそ10mlの液体フッ化水素を圧入277270行、 私のクラスTripleIntsでTripleIntsの3本の一覧を書いています:のファイルの書き込みが時間
class tripleInt (var sub:Int, var pre:Int, var obj:Int)
追加
私はRDFファイルからApacheのイエナコンポーネントと各リストを作成します私はRDF要素をIDに変換し、このIDを別のリストに格納します。リストを取得したら、次のコードを使ってファイルを書きます:
class Indexes (val listSPO:List[tripleInt], val listPSO:List[tripleInt], val listOSP:List[tripleInt]){
val sl = listSPO.sortBy(l => (l.sub, l.pre))
val pl = listPSO.sortBy(l => (l.sub, l.pre))
//val ol = listOSP.sortBy(l => (l.sub, l.pre))
var y1:Int=0
var y2:Int=0
var y3:Int=0
val fstream:FileWriter = new FileWriter("patSPO.dat")
var out:BufferedWriter = new BufferedWriter(fstream)
//val fstream:FileOutputStream = new FileOutputStream("patSPO.dat")
//var out:ObjectOutputStream = new ObjectOutputStream(fstream)
//out.writeObject(listSPO)
val fstream2:FileWriter = new FileWriter("patPSO.dat")
var out2:BufferedWriter = new BufferedWriter(fstream2)
/*val fstream3:FileOutputStream = new FileOutputStream("patOSP.dat")
var out3:BufferedOutputStream = new BufferedOutputStream(fstream3)*/
for (a <- 0 to sl.size-1){
y1 = sl(a).sub
y2 = sl(a).pre
y3 = sl(a).obj
out.write((y1.toString+","+y2.toString+","+y3.toString+"\n"))
}
for (a <- 0 to pl.size-1){
y1 = pl(a).sub
y2 = pl(a).pre
y3 = pl(a).obj
out2.write((y1.toString+","+y2.toString+","+y3.toString+"\n"))
}
out.close()
out2.close()
このプロセスには30分のaproxがかかります。私のPCは16GBのRAM、コアi7です。それから、なぜ時間がかかっているのか理解できず、このパフォーマンスを最適化する方法はありますか?
はい、あなたが賢くあなたのデータ構造を選択する必要があり、あなたに
こんにちは、私はあなたが私の答えを見たことは確かではありませんが、はいの場合:主な問題であるSeqの索引付けが行われましたか?それを修正して実行時間を短縮しましたか? –