/GF (Исключение повторяющихся строк)
Разрешает компилятору создавать одну копию одинаковых строк в образе программы и в памяти во время выполнения. Это оптимизация под названием пул строк, которая может создавать небольшие программы.
/GF
Заметки
Если используется /GF, операционная система не меняет местами строковые части памяти и может читать строки из файла образа.
/GFпулы строк только для чтения. При попытке изменить строки в /GF возникает ошибка приложения
Пул строк позволяет назначить несколько указателей на несколько буферов как несколько указателей на один буфер. В следующем коде s и t инициализируются при помощи одинаковых строк. Пул строк вызывает указатель на один и тот же адрес в памяти:
char *s = "This is a character buffer";
char *t = "This is a character buffer";
Примечание
Параметр /ZI, используемый для обеспечения возможности применения операции "Изменить и продолжить", автоматически устанавливает параметр /GF.
Примечание
Параметр компилятора /GF создает адресуемый раздел для каждой уникальной строки.По умолчанию файл объекта может содержать до 65 536 адресных секций.Если программа содержит более 65 536 строк, используйте параметр компилятора /bigobj, чтобы создать дополнительные разделы.
Параметр /GF действует, если используется /O1 или /O2.
Установка параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
Откройте папку C/C++.
Выберите страницу свойств Создание кода.
Измените свойство Включить пулы строк.
Установка этого параметра компилятора программным способом
- См. раздел StringPooling.
См. также
Ссылки
Настройка параметров компилятора
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Июль 2010 |
Указано, что параметр компилятора /GF создает по разделу для каждой уникальной строки. |
Обратная связь от клиента. |