Dla programu napisanego w C++ potrzebuję dwóch ogromnych tablic ciągów zawierających dane.C++ (gcc/g ++) Dwie ogromne tablice ciągów zajmują wyjątkowo dużo czasu kompilacji
Są one zdefiniowane w pliku nagłówkowym następująco:
#include <string>
static const string strdataA[30000]={"this is the first line of the data",
"the second line of data",
"other stuff in the third line",
do
"last line."};
//second array strings
static const string strdataB[60000]={"this is the first line of the data",
"the second line of data",
"other stuff in the third line",
do
"last line."};
Ale kiedy mogę skompilować to z g ++, to trwa tak długo, że nie widziałem go kompletny. Wykorzystuje również około dwóch GB pamięci wirtualnej. Skomentowałem więc strdataB [], a następnie program się skompilował, ale nadal po dłuższej chwili. Plik wykonywalny miał tylko około 8 Mb i działał dobrze.
Co mogę zrobić, aby przyspieszyć proces kompilowania? Nie mam nic przeciwko, jeśli muszę zmienić kod, ale nie chcę używać zewnętrznego pliku do załadowania. Chciałbym tablicy, ponieważ działa bardzo dobrze dla mnie w programie.
Czytam w sieci gdzieś, że "statyczna konstytucja" powinna załatwić sprawę, ale nauczyłem się z doświadczenia, że tak nie jest.
Bardzo dziękuję z góry za wszelkie sugestie!
Ile linii mówisz? Czy w Twoim źródle jest naprawdę 30 000 i 60 000 ciągów? –
Zakładam, że znajdują się w pliku źródłowym, a nie w pliku nagłówkowym. –
Zdajesz sobie sprawę, że program ładujący musi w zasadzie działać tak samo, jak w przypadku ładowania łańcuchów z zewnętrznego pliku? –