当Eclipse CDT索引器被卡住时,我该怎么办? [英] What do I do when the Eclipse CDT indexer gets stuck?

查看:14
本文介绍了当Eclipse CDT索引器被卡住时,我该怎么办?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是Eclipse CDT 2020-06(但在早期版本中也发生过这种情况)。

有时,Eclipse CDT在解析某些文件时会卡住。百分比指示器不会前进;按下任务的Cancel按钮将使任务&Cancel Required&保持不变。因此,我不仅不能对我的项目使用索引,而且大多数其他&async";任务也会排队,也不会执行。当这种情况发生时,我现在基本上放弃并重新启动;最后可能会使用过滤规则屏蔽行为不佳的文件。

我的问题是:有什么更好的方法可以处理索引器卡住的问题吗?

编辑:

如果我运行带-DEBUG的Eclipse并启用索引器调试,我得到的唯一输出是:

Indexer: start PDOMFastIndexerTask
Indexer: parsing /cuda-api-wrappers/examples/other/io_compute_overlap_with_streams.cu

这就是我被卡住的地方。

推荐答案

如何解开索引程序

我现在已经在Linux上专业地使用了Eclipse 4年(仅用于编辑,而不是构建--我在命令行中这样做),在大量单报表上,代码大小高达200 GiB。我的索引器被卡住了数百次,这两个解决方案似乎对解开索引器非常有效。

1.增加可供Eclipse使用的堆(RAM)

将我的最大可用内存从8GiB增加到16GiB,为我解决了这个问题。它在4841/7617 sources, 27463 headers上停滞了几个小时,永远解析同一个文件,RAM的最大容量为8GiB。一旦我将可用于Eclipse的RAM(堆)从8 GiB更新到16 GiB,我让索引器通宵运行10小时,到第二天早上它就完成了。

注意:如果尝试对Boost库进行索引,一些初始测试使我怀疑要花费64 GiB~128 GiB的RAM(堆)来索引它们,因此我通常只是将所有或大部分Boost库排除在索引之外。

要使Eclipse可用的RAM增加一倍,请打开(在Linux上):/home/username/eclipse/embedcpp-2021-06/eclipse/eclipse.ini或相应的路径,然后修改-Xmx值。例如:我将我的从-Xmx8196m(8196MiB,或8GiB)增加到-Xmx16384m(16384 MiB,或16GiB)。关闭并重新打开Eclipse以使此更改生效。

另外,打开在Eclipse窗口底部显示堆状态(如果默认情况下尚未打开):

Window→Preferences→General→选中"Show Heap Status"框并单击"Apply→Close"。下面是它现在在Eclipse窗口底部的样子!

来源:

  1. My Google document above,p12。
  2. 另见:How to view memory usage in eclipse (beginner)

您可能需要为您的PC提供更多虚拟内存才能支持上述内存增加

如果您没有足够的物理RAM来处理这种增加,但您有一个高速SSD,您可以将SSD作为虚拟内存来弥补物理内存不足。这在Windows和Linux上都可以做到,也许在Mac上也可以做到。如果是在Linux上,则将follow my instructions here to increase your vitual memory swapfile改为更可用的值:例如:将其增加到32GiB。现在,您可以设置您的Eclipse使用的最大堆大小将等于物理内存(实际RAM)+虚拟内存交换文件(在您的固态驱动器上模拟的伪RAM&q;)。不过,给其他程序留一些GiB--不要把它全部交给Eclipse。

2.排除所有构建文件夹和第三方库(尤其是Boost!)您不需要为其编制索引

查看我关于如何使用1)资源过滤器和2)手动符号链接生成器脚本(我的首选)执行此操作的详细答案:How to exclude all parts of a folder in Eclipse except for a few specific sub-folders within it

进一步

我写了一大堆其他设置和内容,您可能会在我的Eclipse安装文档中找到有用的东西,您可以在此处找到:

  1. https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/tree/master/eclipse
  2. Direct link to the Google doc

另见:What's the recommended Eclipse CDT configuration for big C++ project (indexer takes forever)

这篇关于当Eclipse CDT索引器被卡住时,我该怎么办?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆