Я думаю, что изучение компьютерной архитектуры в сочетании со сборкой немного раскроет ваш разум.
Это поможет объяснить множество проблем с производительностью, например, синтаксический анализатор работает медленно, потому что есть много ветвей, и конвейер очищается очень легко, предсказатель ветвления не может компенсировать все.
Кроме того, у разных архитектур есть свои особенности. Кто-то говорил о сборочном трюке, чтобы поменять 2 регистра на месте, включая xor. Это работает, и оно отлично работает для ядра исполнения по порядку (самый последний пример - Intel Atom и Via C7 для нетбуков), но не так хорошо для ядра вне очереди.
Знание этого может помочь вам обнаружить плохо скомпилированный код, изучив его в сборке, и, возможно, суметь написать код на языке более высокого уровня, чтобы обойти несовершенство оптимизаторов компилятора. Я не пытаюсь рассеять их, но они просто не могут быть идеально настроены.