SublimeText 3, используя 100% процессор, "застревает во время обработки файла"

Я использую Sublime Text 3 в течение некоторого времени, и за последние несколько недель я столкнулся с проблемой, когда Sublime будет порождать многочисленные процессы, съедая 100% моего процессора.

Ниже представлен вывод wmic-процесса, где "name= 'sublime_text.exe'"

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

Когда я открываю консоль Sublions, я вижу следующие строки

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.

Ответ 1

Вы можете попробовать следующее:

shift + super + p:

введите описание изображения здесь

{
    "color_scheme": "Packages/User/SublimeLinter/Monokai Bright (SL).tmTheme",
    "font_size": 13,

    "folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules/*"],
    "binary_file_patterns": ["*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"],
}

ссылки:

Ограничить область поиска файлов в Sublime Text 2

Ответ 2

Возможно, вы открыли проект, содержащий сторонние библиотеки.

В моем конкретном случае у меня есть такая проблема, если я не исключаю из каталога Project Index node_modules более крупного приложения node.js.

Sublime Text пытается обновить индексные файлы в каждом прогоне.

Добавить шаблон исключения в свой проект:

"folder_exclude_patterns":
[
    "DIR_NAME"
]

Ответ 3

Удаление папки, содержащей эти два проблемных файла, сделало трюк после всего, но только после того, как я также удалил плагин Javatar. С тех пор я добавил плагин Javatar обратно, и с тех пор я не добавляю проблем, поэтому, если бы я мог предположить, что когда я удалил проект файлов и перезапустил Sublime, плагин Javatar все еще знал о них и рассказывал Sublime о индексе их. Как только я удалил и переустановил плагин Javatar, после того, как файлы были удалены, все, казалось, работало нормально.

Ответ 4

У меня был этот вопрос несколько раз, поэтому я хотел бы дать более полный ответ.

Кто они и как их остановить?

Процессы, которые вы видите, - это работники индексирования, которые анализируют все файлы, включенные в боковую панель вашего проекта (-ов) (да, каждый файл), и создают индекс для Goto Anything.

Это можно полностью отключить, добавив "index_files": true, к вашим Preferences.sublime-settings (Prefereces > Settings). Чтобы отключить это для всей системы, вы добавляете его в файл настроек по Default или можете добавить его в файл настроек User. Либо будет работать.

Ограничение области индексации

Однако, если вы не хотите полностью отключать индексирование, вы можете просто изменить область действия файлов, исключаемых из индексации:

(это хороший стартовый список, но не стесняйтесь редактировать, чтобы лучше соответствовать вашим потребностям)

"index_exclude_patterns": [
    "data/*",
    "log/*",
    "logs/*",
    "node_modules/*",
    "vendor/*",
    "*.log"
]

Кроме того, вы также можете расширить то, что считается "двоичным" файлом (двоичные файлы также исключены из индексации):

"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:

{
  "folders":
  [
    {
      "path": "src",
      "folder_exclude_patterns": ["vendor"]
    },
    {
      "path": "doc",
      "index_exclude_patterns": ["*.md"]
    }
  ]
}

Ограничение количества рабочих процессов индексации

Также стоит отметить, что вы можете ограничить число индексирующих рабочих процессов с помощью "index_workers": 1, где 1 - номер рабочего процесса. По умолчанию это число равно 0 что указывает Sublime угадывать, а оптимальное количество рабочих основывается на количестве ядер ЦП.