>> Бинарник 4 метра?! Это что же за проект такой? Оптимизируйте дальше.
> Бедный Йорик, никогда не видел здоровенных программ на си++.Еще раз четыре мегабайта - это дохрена. Собственно, что это за проект, который столько использует? Сделать большой бинарник - не проблема, но чтобы сильно распух размер секций кода - надо постараться. Еще раз, вы хорошо себе представляете, что должен делать код, если он занимает несколько мегабайт?!
А теперь скажите какая секция того бинарника уменьшилась в ходе оговоренной оптимизации? Если речь о секции данных, то мимо. От cache miss это не спасет вообще никак - оптимизируйте дальше.
> Чем меньше кода, тем он чаще целиком умещается в кэш.
У вас код занимает несколько мегабайт. В какой кеш Вы предлагает его запихнуть? Покажите мне этот кеш, я хочу его! Ну а далее, формулировка "чаще _целиком_ умещается в кэш" так вообще поражает своей технической грамотностью.
Собственно, а где Вы взяли такую чушь, что какой-либо код должен умещаться в кеш целиком? Это что же, по вашему, если это так, то все отлично и мы спасены от промахов кеша? (Это Вам домашнее задание)
> Вот так
> вот просто и банально. Хотя я понимаю что фанатам даже такая
> примитивная логика недоступна.
В общем случае, бинарник бОльшего размера, с подряд идущими инструкциями, без далеких переходов, выходящих за границу линии кеша, лучше обрабатывается кешем, нежели ужатый донельзя бинарник. Префетчеру гораздо проще подгрузить в кеш подряд несколько линий, идущих друг за другом блоков памяти, нежели поочереди грузить несколько разрозненных линий по каждому cache miss (ага, здравствуй tlb miss!).
Это вам, фанатик, так, небольшая пища к размышлению и ядреный пинок провести профилирование_ полученного кода, а не сравнивать теплое с мягким.