首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用100%cpu的SublimeText 3,“处理文件时卡住”

使用100%cpu的SublimeText 3,“处理文件时卡住”
EN

Stack Overflow用户
提问于 2015-03-25 23:47:45
回答 3查看 6.7K关注 0票数 22

我使用Sublime Text 3已经有一段时间了,在过去的几周里,我遇到了一个问题,Sublime会产生大量的进程,占用我100%的CPU。

下面是wmic进程的输出,其中"name='sublime_text.exe'“

代码语言:javascript
运行
复制
CommandLine                                                                   ProcessId
"C:\Program Files\Sublime Text 3\sublime_text.exe"                            10980
"/C/Program Files/Sublime Text 3/sublime_text.exe" "--crawl" "10980:crawl:1"  12152
"/C/Program Files/Sublime Text 3/sublime_text.exe" "--crawl" "10980:crawl:1"  8420
"/C/Program Files/Sublime Text 3/sublime_text.exe" "--crawl" "10980:crawl:3"  6016
"/C/Program Files/Sublime Text 3/sublime_text.exe" "--crawl" "10980:crawl:3"  12008

当我打开Sublimes控制台时,我看到以下几行

代码语言:javascript
运行
复制
worker 8420 appears stuck while processing file /D/dev/project/ext/index.html, killing process
worker 8420 appears stuck while processing file /D/dev/project/ext/build/index.html, killing process

此后,我从索引中删除了整个/D/dev/ project /ext文件夹,然后从项目整体中删除了它,但这似乎没有什么帮助。

以前有没有人见过这个?我真的不想重新安装Sublime。

EN

回答 3

Stack Overflow用户

发布于 2015-10-22 05:25:51

可能是因为您打开了一个包含第三方库的项目。

在我的特殊情况下,如果我不从某个较大的node.js应用程序的项目索引node_modules目录中排除,我就会遇到这种问题。

Sublime Text尝试在每次运行时刷新索引文件。

在项目中添加排除模式:

代码语言:javascript
运行
复制
"folder_exclude_patterns":
[
    "DIR_NAME"
]

票数 15
EN

Stack Overflow用户

发布于 2019-05-08 12:49:06

这个问题我已经提过好几次了,所以我想给出一个更完整的答案。

它们是什么?我如何阻止它们?

您看到的进程是索引工作器,它们解析项目侧栏中包含的所有文件(是的,每个文件),并为Goto Anything建立索引。参见Sublime Text 3 File Indexing

禁用所有索引

这可以通过将"index_files": false,添加到您的Preferences.sublime-settings (Prefereces > Settings)来完全禁用。要在系统范围内禁用此设置,可以将其添加到Default设置文件中,也可以将其添加到User设置文件中。这两种方法都行得通。

限制索引的范围

但是,如果您不希望完全禁用索引,则可以简单地修改从索引中排除的文件的范围:

(这是一个很好的开始列表,但请随意编辑以更好地满足您的需求)

代码语言:javascript
运行
复制
"index_exclude_patterns": [
    "data/*",
    "log/*",
    "logs/*",
    "node_modules/*",
    "vendor/*",
    "*.log"
]

此外,您可能还希望扩展被认为是“二进制”文件(二进制文件也被排除在索引之外):

代码语言:javascript
运行
复制
"binary_file_patterns": [
    "*.bz2",
    "*.cache",
    "*.dds",
    "*.eot",
    "*.gif",
    "*.gz",
    "*.ico",
    "*.jar",
    "*.jpeg",
    "*.jpg",
    "*.pdf",
    "*.png",
    "*.swf",
    "*.tar",
    "*.tga",
    "*.ttf",
    "*.zip"
]

我见过有人建议将文件夹添加到folder_exclude_patterns数组中,但这是要隐藏的文件夹列表,不会显示在侧栏中。虽然没有显示在侧边栏中的文件夹将不会被索引,但可能存在您确实希望显示但不希望被索引的文件或文件夹;在这种情况下,应该使用index_exclude_patterns

限制每个项目的索引

还可以在*.sublime-project文件中为每个项目定义索引排除:

代码语言:javascript
运行
复制
{
  "folders":
  [
    {
      "path": "src",
      "folder_exclude_patterns": ["vendor"]
    },
    {
      "path": "doc",
      "index_exclude_patterns": ["*.md"]
    }
  ]
}

限制索引工作进程的数量

还值得注意的是,您可以使用"index_workers": 1,限制索引工作进程的数量,其中1是工作进程的数量。默认情况下,这个数字是0,它会指示Sublime根据可用的CPU核心数来猜测和最佳工作进程数。

票数 12
EN

Stack Overflow用户

发布于 2015-03-26 21:24:21

删除包含这两个问题文件的文件夹确实起到了作用,但前提是我还删除了Javatar插件。从那以后,我又添加了Javatar插件,从那以后我再也没有添加过问题,所以如果我要猜测的是,当我删除文件项目并重新启动Sublime时,Javatar插件仍然知道它们,并告诉Sublime索引它们。一旦我卸载并重新安装了Javatar插件,在文件被删除之后,一切似乎都运行得很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29260350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档