Извините, если вы нажали мою общую кнопку.
Это относится к теме низкоуровневой оптимизации, поэтому это имеет значение только для кода, в котором 1) счетчик программы тратит много времени и 2) фактически видит компилятор. Например, если компьютер проводит большую часть своего времени в библиотечных подпрограммах, которые вы не компилируете, это не должно иметь большого значения.
Независимо от того, выполнены ли условия 1 и 2, вот мой опыт оптимизации:
Выполнено несколько итераций выборки и исправления. В каждом из них выявляется проблема, и чаще всего речь идет не о том, где находится счетчик программ. Скорее, на средних уровнях стека вызовов существуют вызовы функций, которые, поскольку производительность имеет первостепенное значение, могут быть заменены. Чтобы быстро их найти, я делаю это.
Имейте в виду, что если есть инструкция вызова функции, которая находится в стеке в течение значительной доли времени выполнения, будь то в нескольких длинных или очень коротких вызовах, этот вызов отвечает за эту часть времени поэтому удаление или выполнение его реже может сэкономить много времени. И эта экономия намного превышает любую низкоуровневую оптимизацию.
Программа теперь может быть во много раз быстрее, чем это было с самого начала.
Я никогда не видел ни одной программы хорошего размера, какой бы тщательной она ни была написана, которая не смогла бы извлечь выгоду из этого процесса.
Если процесс еще не завершен, не следует предполагать, что низкоуровневая оптимизация - единственный способ ускорить выполнение программы.
После того, как этот процесс завершен до такой степени, что он просто не может быть выполнен, и если примеры показывают, что ПК находится в коде, который видит компилятор, тогда оптимизация низкого уровня может иметь значение.