Вопрос

Я изучал влияние __retricting определенных указателей в коде C ++, при составлении его через GCC-компилятор.

Поверно, что не только время выполнения остается совсем таким же, но и исполняемый файл не изменился, размер в байтах точно такой же, как и раньше.

Моя GCC-версия

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

И хотя он принимает это расширение C ++ при диапазоне, он, похоже, не рассматривает его при сборке кода. Таким образом, есть либо причина, компилятор не знает, как использовать эту семантическую информацию, либо обработка этой информации полностью отключена.

Код выполняет много чисел, он хотел бы включить его в целях тестирования. Вы можете помочь?

Это было полезно?

Решение

restrict Квалификаторы-это в основном способ для пользователя помочь компилятору выполнить определенные оптимизации, связанные с псевдонимом. Они будут иметь эффект только в том случае, если эти возможности оптимизации уже присутствуют в коде, поэтому использование restrict Просто позволяет им в ситуациях, когда компилятор ранее должен был использовать «более безопасную» (не оптимизирующую) генерацию кода. В других контекстах restrict не будет иметь никакого эффекта вообще.

Итак, вы добавили немного restrict квалификаторы для вашего кода. Но был ли кто -нибудь из них использован в контексте, где они действительно имеют значение, то есть, где они на самом деле дают компилятору больше свободы для оптимизации кода? Если нет, вы не должны ожидать, что ваш код изменится.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top