https://x.com/davepl1968/status/2067329306918097044
https://www.youtube.com/watch?v=jH0BYAkPj78
https://softantenna.com/blog/microsoft-lego-binary-optimization/
История о том, как Microsoft ускорила работу Windows с помощью оптимизации в стиле конструктора Lego.
Часто говорят, что «старое программное обеспечение было легче», но это объяснялось кропотливой работой разработчиков.
В 1990-х годах Microsoft также тщательно оптимизировала свои исполняемые файлы для запуска Windows и Office в средах с объемом оперативной памяти всего 12 МБ.
В основе всего этого лежал инструмент под названием BBT (Basic Block Tool) , который внутри компании называли «конструктором Microsoft Lego».
По словам бывшего инженера Microsoft Дэйва Пламмера, в то время приложения становились всё более громоздкими, но при запуске требовалась лишь небольшая часть кода. Однако эти необходимые 300 КБ кода были разбросаны по 10-мегабайтному исполняемому файлу, что требовало доступа к большому количеству страниц памяти во время загрузки и приводило к значительным задержкам при обращении к диску.
Для решения этой проблемы компания BBT выполнила процесс «дефрагментации» бинарного файла, который включал анализ пути выполнения и группировку связанного кода, что позволило создать более быстрый бинарный файл, сохранив при этом ту же функциональность.
Философия оптимизации, которая остается актуальной и сегодня.
По словам Дэйва Пламмера, существовавшая в то время среда оказала прямое влияние на пользовательский опыт, благодаря таким улучшениям, как сокращение количества страниц, запрашиваемых при запуске, группировка часто используемого кода для предотвращения его замены и повышение отзывчивости при многозадачности.
Философия оптимизации остается актуальной и сегодня, несмотря на значительное улучшение производительности оборудования. Пламмер утверждает: «Масштаб проблемы просто изменился, но суть осталась прежней».
Несмотря на то, что бинарные файлы стали огромными, фреймворки — более сложными, а сервисы — более децентрализованными, принципы «объединения часто используемого кода» и «поддержания небольших общих путей выполнения» остаются актуальными, и эта философия продолжается в современных инструментах, таких как BOLT и HP Dynamo.
https://dl.acm.org/doi/pdf/10.1145/349299.349303
http://www.hpl.hp.com/cambridge/projects/Dynamo
https://web.archive.org/web/20030212171520/http://www.hpl.hp.com/cambridge/projects/Dynamo/
Discuss
https://web.archive.org/web/20030210080835/http://arstechnica.infopop.net/OpenTopic/page?a=cfrm