Мое, давно красивое, приложение под названием Что?! был немного медленным при открытии файлов. Намного медленнее, чем версия до большого редизайна. Когда вы сильно изменились, трудно найти отправную точку. Что вы можете сделать по этому поводу? Вы уже прочитали заголовок, поэтому знаете ответ. тлдр; "просто попробуйте".

Функция `console.log()` знакома большинству разработчиков JS, вы можете вывести что угодно на консоль (как для Node, так и для браузера). Я думаю, что многие разработчики не знают о `console.time()`. Вероятно, что-то, что вы будете использовать намного реже, но может быть очень полезным.

Итак, давайте найдем эту медленную маленькую функцию. Что вам нужно знать:
 – console.time(‘example’) запустит таймер, которому вы также дадите имя. Вы можете запустить несколько таймеров (одновременно), если выбрать разные имена. Однако он ничего не будет консольировать.
- console.timeLog(‘example’) дает вам количество прошедших миллисекунд в консоли. Не забудьте запустить таймер первым и с тем же именем. Совет: вы можете вызвать его несколько раз, чтобы увидеть, где происходят самые большие скачки времени в вашем процессе.
- console.timeEnd('example') остановит таймер и консоль запишет сумму прошедших миллисекунд.

Поместите `console.time()` в начало вашего медленного процесса и пропустите несколько timeLog через процесс. В местах, где выполняются разные действия или, возможно, ожидаются проблемы с производительностью. Не забудьте остановить таймер в конце.

У вас есть одновременные задачи или много шагов? Вы можете запустить несколько таймеров, измерить общий процесс и запустить отдельные таймеры для определенных задач/этапов, чтобы получить лучшую картину. Делайте все, что вам нужно, чтобы увидеть, какая часть вашего кода занимает слишком много времени, просто начните и попробуйте.

Надеюсь, ты нашел сукин сын. Теперь у вас могут появиться идеи, как реализовать это по-другому, может быть, ›1 вариант. Давайте их реализовывать! Теперь вы можете попробовать что-то сделать, сделать дублирующую функцию с другой реализацией. Оставьте `console.time()` в своем коде, чтобы измерить до/после.
Если у вас есть несколько решений, проверьте их все (или некоторые из них) и посмотрите, какое из них работает быстрее всего. У вас уже есть испытательный стенд, сейчас самое время!

Далее: выберите свое решение, удалите консольные функции, потому что они не нужны вам в рабочем коде, идите в магазин, купите конфетти и празднуйте! Ваше приложение стало быстрее, поздравляю :)

Конечно, есть гораздо больше возможностей для отладки производительности и гораздо больше инструментов для работы. Мне нравится это, потому что это легко и доступно для всех, кто в ней нуждается.

Это помогло мне получить мое приложение Что?! быть намного быстрее. Особенно на больших файлах перевода. Будьте осторожны с глубоким клонированием больших объектов, урок усвоен.