К сожалению, мне не удалось воспроизвести столь значительное ускорение. В Firefox и Chrome (macOS) я не наблюдаю никакого измеримого улучшения. Chrome тратит около 23 мс на renderTopicListItem, Firefox — 30 мс. На старом устройстве Android (Pixel 3) время составляет около 108 мс. Цифры не меняются до и после внесения изменений.
Кстати, я измерял эти показатели с помощью Performance API. Я добавил performance.mark("rtli-start") в начало функции renderTopicListItem, а затем performance.measure("rtli", "rtli-start") в её конец.
Затем я перезагружаю браузер с закрытыми инструментами разработчика и отключёнными расширениями (инструменты разработчика и расширения могут существенно влиять на производительность рендеринга). После завершения загрузки открываю инструменты разработчика и выполняю следующую команду для суммирования измерений:
performance.getEntriesByName("rtli").reduce((v, m) => v + m.duration, 0);
Мы определённо примем это изменение — оно явно является более удачной реализацией. Но я не уверен, что оно даст заметное улучшение производительности рендеринга ![]()