Я автоматически создал огромный, но очень простой .cpp-файл. Он определяет класс:Автоматически сгенерированный файл .cpp занимает очень много времени для компиляции
#include <QString>
#include <map>
class CTrigramFrequencyTable_English
{
public:
CTrigramFrequencyTable_English();
private:
std::map<QString /*trigram*/, quint64 /*count*/> _trigramFrequencyTable;
const quint64 _totalTrigramCount;
};
и ставит 10k строки следующего вида в конструкторе:
_trigramFrequencyTable[QString("and")] = 48760ull;
Я начал составление этого .cpp около 10 минут назад, и это продолжается до сих пор. Есть ли способ достичь того, чего я хочу, и сократить время компиляции? Почему это так долго? Я видел довольно много библиотек с 3k-5k строк обычного кода, даже с шаблонами, и он скомпилировался очень быстро.
Нижняя строка. Я не хочу помещать свои данные в файл ресурсов и анализировать этот файл, я хотел бы скомпилировать данные непосредственно в двоичный файл.
Файл P. S. 10k строк компилируется примерно через 30 секунд в конфигурации отладки; в освобождении я ждал 10 минут и прекратил этот процесс.
@MrEricSir Почему вы думаете, что это переполнило бы стек? Нет ничего, указывающего, что код называется _recursively_. –
Нет, конечно, не будет переполнения стека. Во всяком случае, он будет работать медленно. –
Какой компилятор вы используете ([GCC] (http://gcc.gnu.org/) или [Clang/LLVM] (http://clang.llvm.org/)), какая версия ('g ++ 4.9'?)? какие флаги оптимизации? –