Встречается на собеседованиях • сегодня

Какие знаешь способы оптимизации тяжелых вычислений

  1. Мемоизация – кеширование результатов функции для одинаковых аргументов.
    Пример с React.memo или useMemo:

    javascript
    const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
  2. Ленивая загрузка (Lazy Loading) – выполнение вычислений только при необходимости.
    Пример:

    javascript
    const heavyFunction = () => { /* ... */ };
    const result = useMemo(heavyFunction, [deps]);
  1. Разбивка на чанки – выполнение в несколько этапов через requestIdleCallback или setTimeout.
    Пример:

    javascript
    function processChunk(data, chunkSize, callback) {
      let index = 0;
      function nextChunk() {
        const chunk = data.slice(index, index + chunkSize);
        if (chunk.length) {
          callback(chunk);
          index += chunkSize;
          setTimeout(nextChunk, 0);
        }
      }
      nextChunk();
    }
  2. Web Workers – вынос вычислений в отдельный поток.
    Пример:

    javascript
    const worker = new Worker('worker.js');
    worker.postMessage(data);
    worker.onmessage = (e) => console.log(e.data);
  3. Дебаунс/Троттлинг – ограничение частоты вызовов.
    Пример с Lodash:

    javascript
    const debouncedFn = _.debounce(heavyFunction, 300);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы