|
31.10.2005, 15:27 | #1 |
Member
|
Цитата:
Сообщение от SeregaG
...
в конце концов все заканчивается вылетом программы. Тестили на разных компах (1 комп 4 xeon 2.8Gz 1 Gb RAM, 2 комп 1 проц Atlohh 1.7Gz 1 gb Ram) ... Или ax32.exe от сп3 используйте.
__________________
С уважением, glibs® |
|
31.10.2005, 16:37 | #2 |
Шаман форума
|
Цитата:
Сообщение от glibs
А у меня построились. Правда, сожрала 2 с хвостиком Гб виртуальной памяти. Так что добавьте виртуальной памяти побольше.
Или ax32.exe от сп3 используйте. |
|
01.11.2005, 16:46 | #3 |
Moderator
|
После того как я поставил вызовы heapCheck в xRefCreate::updateReferences() и в xRefCreate::updateDBReferences() - отъедание памяти кончилось.
В xrefCreate::updateReferences() надо вставлять вызовы heapCheck.shrinkPool() и heapCheck.postCompactingMessage() в конец условия: if (counter>500) { } В xRefCreate:updateDBReferences() - просто в самом конце функции - перед return. На самом деле во время обновления перекрестных ссылок система постоянно создает нехилые mapы состоящие из structов, потом после того как таких элементов накопится 500 штук - она их записывает в базу (в функции updateReference), а затем удаляет. А от этого случается нехилая фрагментация памяти, от которой постоянно приходится захватывать новую оперативку у системы и тп. После того как мы поставили вызовы сжатия памяти и в двух методах (один всегда на клиенте отрабатывает, второй - может и на сервере и на клиенте работать), дефрагментация памяти прошла и потребности ее все время у операционки захватывать - нету. Последний раз редактировалось fed; 02.11.2005 в 11:09. |
|