Đối với một chương trình được viết bằng C++, tôi cần hai mảng dây lớn chứa dữ liệu.C++ (gcc/g ++) Hai mảng lớn các chuỗi cực kỳ dài để biên dịch
Chúng được định nghĩa trong một tập tin tiêu đề như sau:
#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",
xuống
"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",
xuống
"last line."};
Nhưng khi tôi biên dịch này với g ++, phải mất rất từ lâu tôi chưa thấy nó hoàn thành. Nó cũng sử dụng khoảng hai GB bộ nhớ ảo. Vì vậy, tôi nhận xét ra strdataB [], và sau đó chương trình đã biên dịch, nhưng vẫn còn sau một thời gian dài. Việc thực thi chỉ khoảng 8 Mb và làm việc tốt.
Tôi có thể làm gì để tăng tốc quá trình biên dịch? Tôi không quan tâm nếu tôi phải thay đổi mã, nhưng tôi không muốn sử dụng một tập tin bên ngoài để tải từ. Tôi muốn một mảng vì nó hoạt động rất tốt cho tôi bên trong chương trình.
Tôi đọc trên mạng ở đâu đó rằng "const tĩnh" nên làm các trick, nhưng tôi đã học được bằng kinh nghiệm mà nó không.
Cảm ơn bạn rất nhiều vì đã đề xuất!
Bạn đang nói về bao nhiêu dòng? Có thực sự 30.000 và 60.000 dây trong nguồn của bạn? –
Tôi cho rằng chúng nằm trong tệp nguồn chứ không phải tệp tiêu đề. –
Bạn nhận ra rằng bộ nạp phải làm về cơ bản giống như bạn sẽ làm nếu bạn nạp các chuỗi từ một tệp bên ngoài? –