al13n's blog

By al13n, 13 years ago, In Russian

UPD: Ок, видимо, это бесполезный способ: то же самое, но проще, может сделать #pragma hdrstop.

Нашел способ ускорить компиляцию в Visual Studio примерно на 6 секунд, используя precompiled headers. При этом не требуется изменение кода перед отправкой на тестирование. Это достигнуто грязным хаком, о котором ниже :). Вот инструкция:


1) Создаем в проекте файл с названием "stdio.h" (да, обязательно с названием какого-нибудь стандартного хедера). Туда выносим весь шаблон, который не изменяется от программы к программе, в основном инклюды.
2) В Project - Properties - Configuration Properties - C/C++ - Precompiled Headers  выбираем Precompiled Header: Create, Precompiled Header File: stdio.h.
3) Программу начинаем со строк
#include "stdio.h"
#ifdef ONLINE_JUDGE
(тут все содержимое нашего stdio.h)
#endif

Почему нельзя было назвать свой хедер по-человечески и окружить его инклюд в #ifdef? Потому что студия требует, чтобы файл с кодом начинался с инклюда precompiled header, инклюдить в ифдефе не дает.
  • Vote: I like it
  • +10
  • Vote: I do not like it