0

我在热点 vm 中的 Windows 2008 服务器(64 位)上运行我的 java 应用程序。

几个月前,我创建了一个工具来帮助检测我的应用程序中的死锁。在过去一个月左右的时间里,唯一给我带来任何问题的是写入文本文件。

主线程似乎总是卡在下一行,我认为一次几乎是 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 回答