На прошлой неделе я написал несколько строк кода на C # для запуска большого текстового файла (300 000 строк) в словарь. Написание заняло десять минут, и оно было выполнено менее чем за секунду.
Теперь я конвертирую этот кусок кода в C ++ (потому что он мне нужен в старом COM-объекте C ++). Я провел два дня на этом далеко. :-( Хотя разница в производительности сама по себе шокирующая, мне нужно несколько советов по поводу производительности.
На загрузку уходит семь секунд, и даже хуже: для освобождения всех CStringW требуется ровно столько же времени. Это недопустимо, и я должен найти способ повысить производительность.
Есть ли шанс, что я смогу выделить столько строк, не увидев такого ужасного снижения производительности?
Сейчас я предполагаю, что мне придется собрать весь текст в большой массив, а затем позволить моей хэш-таблице указывать на начало каждой строки в этом массиве и отбрасывать содержимое CStringW.
Но до этого есть какой-нибудь совет от ваших экспертов по C ++?
РЕДАКТИРОВАТЬ : Мой ответ сам себе дан ниже. Я понял, что это самый быстрый маршрут для меня, а также шаг в том, что I считает правильным направлением - к более управляемому коду.