Я написал приложение для передачи записей как для чтения из базы данных 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**
Это полученные знания, но я не могу понять, почему передача была прервана с этой ошибкой. На моей машине все нормально, что может быть по другому на сервере? Где я должен искать проблему? Также, как я должен прокомментировать приращение частного?