|
15.03.2006, 12:42 | #1 |
Гость
|
Утечка памяти? Почему? Ax3 sp 4
Привет!
Такой вот job жрет память отпускает только после закрытия приложения void Jobs() { int i, loc_i; str s = ' ', res; ; for (i = 0; i <= 1001; i++) { res = ''; for (loc_i = 1; loc_i <= i; loc_i++) { res += s; } } } Есть ли рецепты (Ax3 SP4)? |
|
15.03.2006, 12:49 | #2 |
Участник
|
Не использовать строки неограниченной длины.
str без указания длины создает переменную, которая в базе хранится как memo. Сборщик мусора к таким строкам относится плохо. Используйте типизированные переменные. В крайнем случае просто укажите максимальную длину. |
|
15.03.2006, 12:55 | #3 |
Модератор
|
Хмм. у меня не жрет. Сжирает, правда, около 60кило.
strlen дает 1001. Странно... может, что-то в консерватории подправить? Проверял и на sp3 и на sp4. Георгий |
|
15.03.2006, 12:57 | #4 |
Модератор
|
Тогда встречный вопрос - а почему у меня не жрет? Сервис - параметры - критерии сборки мусора трогал? Сколько памяти всего / свободной?
Хотя, я думаю, это от еще многих параметров зависит.. С Уважением, Георгий |
|
15.03.2006, 13:05 | #5 |
Гость
|
Цитата:
Сообщение от George Nordic
Тогда встречный вопрос - а почему у меня не жрет? Сервис - параметры - критерии сборки мусора трогал? Сколько памяти всего / свободной?
Хотя, я думаю, это от еще многих параметров зависит.. С Уважением, Георгий Да вроде бы ничего не меняли. Память свободная есть. Сейчас посмотрю с другой машины. |
|
15.03.2006, 13:37 | #6 |
Участник
|
и у меня не жрет и на sp3 и на sp4
|
|
15.03.2006, 13:25 | #7 |
Гость
|
Посмотрел жрет и на другой.
Установка размера эффекта не дала. |
|
15.03.2006, 13:28 | #8 |
Участник
|
Цитата:
Сообщение от lagr221374
Посмотрел жрет и на другой.
Установка размера эффекта не дала. |
|
15.03.2006, 13:37 | #9 |
Модератор
|
Забыл добавить - только что проверил - и там, и там стот kernel rollup.
|
|
15.03.2006, 13:54 | #10 |
Axapta
|
info (int2str(strlen(res))) дает 1001. Все нормально. Проверял на голом сп3 и сп4.
|
|
15.03.2006, 14:16 | #11 |
Гость
|
А при чем здесь длина строки?
|
|
15.03.2006, 15:14 | #12 |
Axapta
|
просто показывает, что все нормально работает. И никакой утечки нет.
|
|
15.03.2006, 15:32 | #13 |
Гость
|
Цитата:
Сообщение от oip
просто показывает, что все нормально работает. И никакой утечки нет.
|
|
15.03.2006, 16:01 | #14 |
Axapta
|
Странно, поставил i=10001 и все равно все нормально выполняется. за 4 минуты, но нормально выполняется. Хотя видимо и не в это дело.
|
|
15.03.2006, 17:06 | #15 |
Участник
|
Цитата:
Сообщение от lagr221374
Привет!
Такой вот job жрет память отпускает только после закрытия приложения void Jobs() { ... ... } Есть ли рецепты (Ax3 SP4)? |
|
15.03.2006, 17:18 | #16 |
Гость
|
Да вырвано из рабочего кода (на его основе сделан приведенный job дающий столь необычный эффект) рабочий код дает тот же эффект в чем и проблема. Да точно int
|
|
15.03.2006, 17:38 | #17 |
NavAx
|
У меня тоже жрет мега по 3-4 при каждом запуске джоба. (Axapta SP4 EE HF1).
Но вот такая замена кода помогает: PHP код:
|
|
|
За это сообщение автора поблагодарили: (1). |
15.03.2006, 18:23 | #18 |
Гость
|
Спасибо помогло
|
|