Но, справедливости ради, кривые руки завсегда победят даже очень хороший стек технологий. Об этом и пойдет сегодня речь.
Сто лет как пользуюсь Notepad++, это бесплатный, функциональный, легковесный и очень быстрый редактор текста с фичами для программистов. Как бы быстрый, ибо есть одна оговорка. Функция поиска текста по множеству файлов работает с совершенно черепашьей скоростью. Если взять за референс аналогичную функцию в Total Commander (где она, судя по всему, реализована максимально прямолинейно, без всяких там фокусов имени Бойера-Мура), то Notepad++ делает это как минимум на порядок медленнее.
Понятно, что речь идет о поиске по данным на диске, доступ к которым, конечно же, может быть узким местом. Но у меня по работе часто бывает, что при рефакторинге многократно ищешь что-то в одном и том же, относительно компактном, наборе файлов, который гарантировано будет закэширован операционной системой в память.
Первая мысль, которая возникла в голове по поводу этой тормознутости — ну окей, вы написали свой алгоритм поиска по тексту несколько криво, но сейчас 22-й год на дворе, у всех давно стоят многоядерные процессоры, запустите его параллельно по этим ядрам и получите многократный прирост на ровном месте. Для сферического текстового редактора в вакууме такую переделку можно реализовать за несколько дней работы... Пошел гуглить по теме и узнал много чего интересного. Потом таки скачал исходники Notepad++ и ошарашенный очень долго приходил в себя. Тут получилось как иной раз с красивой женщиной — восхищаешься ее задницей ровно до того момента, пока она не откроет рот.