На прошлой неделе я написал несколько строк кода на C#, чтобы запустить большой текстовый файл (300 000 строк) в словарь. Потребовалось десять минут, чтобы написать, и это выполнено менее чем за секунду.Управление памятью на С ++
Теперь я конвертирую этот фрагмент кода в C++ (потому что он мне нужен в старом объекте C++ COM). Я провел там два дня. :-(Несмотря на то, что разница в производительности просто потрясающая сама по себе, это производительность, о которой мне бы понадобился совет.
Загрузка занимает 7 секунд, а еще хуже: требуется всего лишь столько времени, чтобы освободить все CStringWs впоследствии. Это не приемлемо, и я должен найти способ, чтобы увеличить производительность.
есть ли шанс, что я могу выделить это много строк, не видя эту ужасную деградацию Performace?
Мое предположение прямо сейчас что мне придется набивать весь текст в большой массив, а затем пусть моя хэш-таблица указывает на начало каждой строки в этом массиве и отбрасывает материал CStringW.
Но до этого, какие-либо советы от вас, эксперты C++?
EDIT: Мой ответ для себя приводится ниже. Я понял, что это самый быстрый маршрут для меня, а также шаг в том, что I рассмотреть в правильном направлении - в направлении более управляемого кода.
Вам действительно нужно показать нам код, который вы используете сейчас, ваше описание слишком расплывчато для ввода ввода. –
Вам определенно нужно предоставить дополнительную информацию о вашей структуре данных ... –
Прежде чем я был знаком с .Net, переход от C++ к C# - не имея представления о том, как фреймворки (в моем случае VCL) были похожи или разные - имели бы было так же сложно, как и наоборот. Не нужно винить C++, чтобы задать свой вопрос. – overslacked