ошибка нехватки памяти при передаче данных

Я написал приложение для передачи записей как для чтения из базы данных Sybase Ase, так и для записи в новую созданную локальную базу данных Sybase Asa. Необходимо передать около 110 000 записей.

На моем локальном компьютере приложение работает успешно (Windows7 - 32-разрядная версия - 3 ГБ оперативной памяти), но на сервере разработки (Windows Server 2008 - 64-разрядная версия - 8 ГБ оперативной памяти) я получаю сообщение об ошибке "OUT OF MEMORY", когда мой ;

  • количество записей ~ 40 000 и "рабочий набор-частный" ~ 1 800 000 КБ (2,8 ГБ)
  • gc общее увеличение памяти стабильно

Здесь течет мой журнал;

  • Подробный рабочий набор — частный: 507948K, GC GetTotalMemory: 49229720
  • Подробный рабочий набор — частный: 918620K, GC GetTotalMemory: 51377000
  • Подробный рабочий набор — частный: 1328568K, GC GetTotalMemory: 52245316
  • Подробный рабочий набор — частный: 1739128K, GC GetTotalMemory: 52978364
  • Подробный рабочий набор — частный: 1813940K, GC GetTotalMemory: 51567670
  • недостаточно памяти -

А также этот командный файл для создания базы данных Local sybase asa;

set dbToolsPath=%1
set dbDirectory=%2
set scriptsDirectory=%3
set dbNameWOExtension=%4

REM Add trailing back slashes if necessary
IF NOT %dbToolsPath:~-1%==\ SET dbToolsPath=%dbToolsPath%\
IF NOT %dbDirectory:~-1%==\ SET dbDirectory=%dbDirectory%\
IF NOT %scriptsDirectory:~-1%==\ SET scriptsDirectory=%scriptsDirectory%\

set mfgDBFilePath=%dbDirectory%%dbNameWOExtension%.db
set mfgDBLogFilePath=%dbDirectory%%dbNameWOExtension%.log
REM Following four lines can be moved to code
attrib -R       %mfgDBFilePath%
del             %mfgDBFilePath%
attrib -R       %mfgDBLogFilePath%
del         %mfgDBLogFilePath%

REM TODO: Add explanation about the switches
cd /d %scriptsDirectory%
**%dbToolsPath%dbinit.exe -n -p 4096 -z 1252LATIN1 %mfgDBFilePath%
%dbToolsPath%dbspawn.exe -p dbeng10 -n WfDBServer %mfgDBFilePath%
%dbToolsPath%dbisql.exe -c "eng=WfDBServer;dbn=%dbNameWOExtension%;uid=dba;pwd=sql" -nogui PE_WfDB_MFG.sql
%dbToolsPath%dbstop.exe -c "eng=WfDBServer;uid=dba;pwd=pluto" -y**

Это полученные знания, но я не могу понять, почему передача была прервана с этой ошибкой. На моей машине все нормально, что может быть по другому на сервере? Где я должен искать проблему? Также, как я должен прокомментировать приращение частного?


person htcdmrl    schedule 04.07.2013    source источник


Ответы (1)


Скорее всего, проблема связана с неправильной платформой (я думаю, x86) в конфигурации проекта. Вы можете выбрать AnyCPU или x64 в качестве платформы и перестроить приложение. См. отмеченный ответ .NET Out Of Memory Exception: используется 1,3 ГБ, но установлено 16 ГБ

person kiran    schedule 05.07.2013