Как обрабатывать большие данные в сборке консольного приложения Do tNet на VS2017? - PullRequest
0 голосов
/ 16 июня 2020

Я создаю консольное приложение Do tNet в Visual Studio-2017, которое будет создавать некоторые отчеты. Для создания отчета прикладная программа считывает большой объем данных из ORACLE БД и обрабатывает их. Размер данных до 4 ГБ. Приложение будет размещено на сервере Windows 2016, 64-битный процесс и объем оперативной памяти 8 ГБ.

Но у меня возникло исключение нехватки памяти. Я изменил Project-> Properties-> Build-> Platform Target-> X64 bit, но бесполезен. Я прочитал несколько статей, которые помогут добавить editbin /largeaddressaware "$(TargetPath)" на вкладке пост-сборки. Это правда? Если да, каково будет значение TargetPath? Какой максимальный объем памяти, который один процесс приложения может выделить для указанной выше конфигурации системы?

1 Ответ

1 голос
/ 17 июня 2020

Согласно вашему описанию, вы хотите обрабатывать большие данные в Do tNet сборка консольного приложения на VS2017.

Можно добавить editbin / largeaddressaware «$ (TargetPath)» на вкладке пост-сборки .

Но вы не найдете editbin. Поэтому расположение editbin.exe необходимо определять локально. Например: enter image description here

"C: \ Program Files (x86) \ VS2019pro \ SDK \ ScopeCppSDK \ vc15 \ VC \ bin \ editbin.exe" / largeaddressaware "$ ( TargetPath) "

$ (TargetPath) представляет собой абсолютный путь к основному выходному файлу, сгенерированному проектом.

Проверьте, поддерживается ли приложение с большой памятью. Запустите cmd, cd в каталог editbin. exe, введите следующую команду для просмотра свойств файла exe dumpbin / headers c: / **** / *. exe (обратите внимание, что это должен быть полный путь).

После ввода Появится сообщение об успешном завершении, как показано в приложении. На рисунке показано, что объем памяти приложения превышает 2 ГБ.

...