1

私が取り組んでいるマルチスレッド ファイル コンバーターがあります。Windows では、変換中の各ファイルを独自のスレッドに配置し、(すべてのコアで) 常に 100% の CPU を使用します。それは素晴らしいです!Ubuntu では、最初のコアで 100%、残りのコアで最大 10% を達成しています。パフォーマンスが悪く、残念です。

すべて SwingWorker 内でスレッドを使用しているため、GUI はフリーズしません。すべてのスレッドで thread.join を使用するため、すべてのスレッドが完了したときに特定のタスクを実行します。OS 間でコードを変更していません。これを修正する実行可能な方法はありますか?

4

1 に答える 1

1

それは非常にばかげていて、その理由がよくわかりませんが、これを投稿した直後に、すべてのファイルを Ubuntu パーティションに転送しました。ファイルを移動すると高速になる理由がわかりませんか? おそらく私の本当の問題は、それらが異なるファイル システム上にあったため、私のボトルネックは I/O だったということでした。NTFS パーティションからファイルを 1 つだけ変換すると、ext4 パーティションに移動した場合よりも 3 倍の時間がかかりました。(そして、はい、これらはすべて同じ SSD 上にあります)

于 2012-07-22T00:58:45.693 に答える