简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:解决Emacs中,gtags会在保存文件后,执行索引单个文件到整体索引中,导致一个指令占单核100%,如果多保存几次,很快cpu的所有核都不够用,会导致整个PC卡死,风扇疯狂的转。
感受一下,八个核被占100%,我在保存几下,20个核全占满,太疯狂了。。。。风扇在狂转啊。。。。。
2.解决思路
保存文件后,禁止执行单个文件索引命令:gtags -i --single-update xxx.cpp ~/source
# ~/.emacs.d/elpa/ggtags/ggtags.el
(defun ggtags-after-save-function ()
(when (ggtags-find-project)
(ggtags-project-update-mtime-maybe)
- (and buffer-file-name ggtags-update-on-save
+ (and buffer-file-name ggtags-update-on-save nil
(ggtags-update-tags-single buffer-file-name 'nowait))))
3.根本原因
1.可能ggtags索引的文件,如cpp、java等没有权限,重新创建索引即可。
2.因为android12索引时是mv掉out和prebuilts目录,索引完成后,又移动过来的,所以不要索引这两个目录下的文件,防止出现类似权限问题导致的卡死问题。
3.重新创建索引后,没有卡死问题。
android12源码重新索引命令
# gtags -v --skip-unreadable --skip-symlink=d