Eclipse执行数千个不必要的文件请求

时间:2016-03-03 08:24:21

标签: eclipse performance samba

我在Eclipse项目中有一个包含几个(近800个)JSON文件的目录。我注意到刷新这个目录会冻结Eclipse(Mars)。

该目录位于运行Samba 4.1.6的Ubuntu Linux服务器上,我在Windows 8上使用Eclipse x64。

我在相关strace进程上运行smbd,我看到Eclipse在所有文件上重复执行stat()(我只期待一次):

newfstatat(32, "MYFILE-c15771bf38edb6f27f2e3a468eeda58f.json", {st_mode=S_IFREG|0644, st_size=1428, ...}, 0) = 0
stat("path/to/MYFILE-c15771bf38edb6f27f2e3a468eeda58f.json", {st_mode=S_IFREG|0644, st_size=1428, ...}) = 0
stat("path/to/MYFILE-c15771bf38edb6f27f2e3a468eeda58f.json", {st_mode=S_IFREG|0644, st_size=1428, ...}) = 0

这些通话分为三组,一组newfstatat和两条stat。在我写作的时候,自从我开始strace以来,累积了846个对同一文件的请求:

$ grep MYFILE-c15771bf38edb6f27f2e3a468eeda58f.json stracefile | wc -l
846

同样适用于所有其他文件(我的strace文件现在是1352971行,并且正在增长)。

一直以来,Eclipse被冻结(“没有响应”)。幸运的是,我有一个未提交更改的打开文件,我非常希望能够恢复。

在提交Eclipse错误之前,有没有人遇到过这种行为?有没有办法让Eclipse停止对静态文件状态的不断询问,足够长时间来保存一个编辑器窗口? (剪切和粘贴不起作用)。

可能导致这种情况的原因是什么?单个目录中的文件太多了? (特定类型)?与Samba发生冲突?

1 个答案:

答案 0 :(得分:0)

不是一个完整的答案(我可能提交了一个错误),但是一个临时的解决方法来解锁Eclipse:

  • 登录Linux服务器
  • 移动其他地方的目录中的所有文件
  • 等待大约30秒,Eclipse会因为它正在寻找的文件消失而抛出一堆错误
  • Eclipse现已取消阻止
  • 关闭Eclipse中的文件夹
  • 移回目录
  • 中的文件
  • 退出服务器
  • 注意自己:不要再次在Eclipse中打开该文件夹。