编辑器中的Intellij IDEA光标导航滞后

时间:2011-05-19 22:01:06

标签: java jvm intellij-idea memory-management editing

在运行IDEA几个小时后,我注意到编辑器中的导航开始滞后。当我输入内容时,大约需要1-2秒来解冻光标。当我打开一个新线时,它也会冻结一段时间(按下输入5次将冻结IDEA大约10秒,如果我每次等待直到它解冻),以及类似的情况。感觉它在光标冻结时在后台进行某种搜索(可能是索引搜索)。目前jvm堆显示为674MB中的292MB。

这些问题可能与哪些问题有关,以及如何解决这些问题?

[UPDATE]

还会引发OutOfMemory异常。

at com.intellij.util.io.PersistentEnumerator.enumerateImpl(PersistentEnumerator.java:354)
at com.intellij.util.io.PersistentEnumerator.tryEnumerate(PersistentEnumerator.java:175)
at com.intellij.util.io.PersistentHashMap.get(PersistentHashMap.java:219)
at com.intellij.util.indexing.MapIndexStorage$1$1.compute(MapIndexStorage.java:78)
at com.intellij.util.indexing.MapIndexStorage$1$1.compute(MapIndexStorage.java:70)

Caused by: java.lang.RuntimeException: Mapping failed: C:\Users\...\Application Data\.IntelliJIdea90\system\index\idindex\IdIndex, position=0, length=10485760 

at com.intellij.util.io.ReadWriteMappedBufferWrapper.map(ReadWriteMappedBufferWrapper.java:51)
at com.intellij.util.io.MappedBufferWrapper.buf(MappedBufferWrapper.java:68)
at com.intellij.util.io.PagedFileStorage.getBuffer(PagedFileStorage.java:260)
at com.intellij.util.io.PagedFileStorage.get(PagedFileStorage.java:170)
at com.intellij.util.io.PagedFileStorage.getInt(PagedFileStorage.java:121)
at com.intellij.util.io.ResizeableMappedFile.getInt(ResizeableMappedFile.java:141)
at com.intellij.util.io.PersistentEnumerator.enumerateImpl(PersistentEnumerator.java:279)
... 39 more
Caused by: java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
at com.intellij.util.io.ReadWriteMappedBufferWrapper.map(ReadWriteMappedBufferWrapper.java:48)
... 45 more
Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:745)
... 46 more

[更新II]

请注意,在Windows任务管理器中,内存使用量接近1GB(与建议的292MB不匹配)。 Intellij内置内存转储产生了500MB的文件。 WTM显示Intellij的内存也下降到500MB(但仍然很慢)。

1 个答案:

答案 0 :(得分:0)

我曾经遇到过这些类型的问题,而且它们似乎与源代码控制集成有关(特别是Perforce)。如果您使用源代码管理,请尝试禁用它,看看会发生什么。