0

hotspot vm の Windows 2008 サーバー (64 ビット) で Java アプリケーションを実行しています。

数か月前、アプリケーションのデッドロックの検出を支援するツールを作成しました。この 1 か月ほどの間、私に問題を引き起こしたのは、テキスト ファイルへの書き込みだけでした。

メイン スレッドは、一度にほぼ 5 秒であると想定される次の行で常にスタックしているようです。数秒後、アプリケーションは問題なく正常に動作し続けます。

PrintWriter writer = new PrintWriter(new FileWriter(PATH + name + ".txt"));

何が原因なのかはわかりませんが、問題についての洞察をいただければ幸いです。私が書いているファイルは小さいので、それが問題になる可能性は低いです (異論がない限り)。

さらに情報が必要な場合は、お知らせください。

4

2 に答える 2

1

PATH はネットワーク ドライブ上にありますか? ネットワーク ファイル システムへの書き込みの遅延はほとんどありませんでした。一般に、アプリケーションでそれを行うのは非常に悪い考えです。通常、すべてのファイルをローカルに書き込んでから、何らかの方法でトランザクションをサーバーに送信する必要があります。

于 2011-07-31T06:05:41.043 に答える
0

ファイル システムが過負荷になると、最も単純なタスクでも遅延が発生することがあります。たとえば、大きなファイル (数 GB) を作成し、キャッシュされていない単純なディスク アクセスを実行しようとすると、数秒待機することがあります。

ディスクの書き込みキャッシュがオンになっていて、ほとんどの場合、ディスクがアイドル状態であることを確認します。;)

于 2011-07-30T18:31:05.580 に答える