今天搬砖的时候遇到一个问题,idea总是卡死,完全无法愉快的玩耍。幸好机器是Linux系统的。于是通过以下方式解决了问题:
- 通过
top
命令,查看系统运行状态发现4个CPU中有1个CPU用户占用率为100%。经查得知正是idea的进程pid1。 - 通过在
H
找到了idea的线程tid1。 - 通过
jstack
打印出ideapid1的堆栈. - 把tid1转换为十六进制去jstack打出的堆栈中查找。
- 最后经查发现
...
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$ASTTreeGuide.getParent(RecursiveTreeElementWalkingVisitor.java:52)
...
通过这个堆栈可知这是语法提示相关的,在做这个事情的时候性能不好。这样问题就搞明白了:因为在idea上写lua代码,同时代码又不是规范的lua结构,类似于html + lua混合体这类格式的。为了着色我把这类文件也用lua插件渲染了。所以解决方法恨简单,不渲染这类文件即可。