Я только что тестировал программу, над которой работаю, и вижу, что она выполняется на 3 мкс быстрее (статистически значимое изменение), когда я ее компилирую. с -g. Для меня это не имеет смысла - я думал, что флаг -g не должен влиять на выполнение программы, и что даже если бы он это сделал, он заставил бы ее работать медленнее, а не быстрее.
Кто-нибудь может сказать мне, почему это происходит? И изменит ли это поток выполнения программ? Я не компилирую с -O, потому что мне нужно, чтобы он выполнялся точно так, как написано, но если -g может каким-то образом ускорить его работу с изменением порядка инструкций, я, очевидно, должен использовать это.
Так что мне нужно точно знать, какие изменения флаг -g делает программу.
Редактировать: Чем больше тестов я запускаю, тем больше становится t-значение (= тем более статистически значимой становится разница). Это определенно не ошибка измерения - что-то происходит.