Hacker News Digest

03 сентября 2025 г. в 01:28 • larstofus.com • ⭐ 195 • 💬 79

OriginalHN

#unreal-engine#c++#ui-frameworks#performance-optimization#widgets#epic-games#game-development

Speeding up Unreal Editor launch by not spawning unused tooltips

Как ускорить запуск Unreal Editor: не создавать 38 000 тултипов

Unreal Editor запускается долго. Epic борется с этим кэшами, live-coding и прочими оптимизациями, но одна простая проблема оставалась незамеченной: на старте движок генерирует 38 000 виджетов-тултипов, хотя за сессию пользователь видит лишь десяток.

Профилирование показало, что SetToolTipText тратит ~0,2 мс на каждый тултип, но главное — он не просто сохраняет текст, а сразу создаёт полноценный виджет. В итоге:

  • 2–5 с потеряно в дебаг-сборке
  • до 1 с в development
  • ~40 МБ ОЗУ занято невидимыми виджетами

Решение

  1. Заменить немедленное создание виджета на ленивое: сохранять только FText.
  2. Создавать виджет в момент первого обращения (GetToolTip).

Патч — пара строк: убрать Spawn из сеттера, перенести его в геттер.
Результат: стартовое время падает на ~1 с, ОЗУ экономит десятки мегабайт, а в рантайме задержки не заметны — тултипы всё равно редко вызываются пачками.