bash.im ithappens.me zadolba.li
8049

В тесноте = в обиде

16 декабря 2011, 11:45

Программирую микроконтроллер. Один и тот же код, откомпилированный на двух различных компиляторах, выполняется в одном случае гораздо медленнее. Охреневаю. Смотрю на размеры файлов — у более быстрого больший размер. Не очень сильно, но есть.

Лезу внутрь. Код откомпилился один в один. Но в более медленном варианте все переменные идут друг за другом, без перерыва, а в более быстром выровнены по 32 бита. Основной счётчик — как раз 32 бита, но в медленном варианте он смещён на один байт, поэтому читается-пишется за два обращения к оперативке.з