title
Description
Body
Файл db.txt занимает 8 mb.
Выделил оперативки 20m.
Вощем запустил етот скрипт через пару секунд закончилась память.
Поставил на 100m.
Через несколько минут забилась и ета оперативка.
При етом наблюдая за процесом время генерации начиналось от 2 сек. и с каждим выболнением росло.
Пока не дошло до 30 сек. После забилось и 100м оперативы.
Я некое время подумал что надо розтавить unset() ухты время сбилось до одной секунды да и память очистилась.
Но при последующих выполнениях обратно наблюдается рост.
Вчем может быть проблема?
Я уже ниче не пойму. Почему скрипт работает неочищая памяти?
|
|
Отредактировано TLENS (2010.02.10 06:51)
Неактивен
Ну да в db.txt ключи котые повторяются а в new.txt ключи перебранные и ниодин не повторяется.
Но я уже перебрал мне на дальнейше интиресно почему оперативная память неочищается?
Неактивен
ну во первых там db.txt вообще в массив считывать не нужно. ($g + 1000) выполняется при каждой итерации. не мудрено что памятьс таким кодом можеть потечь.
Неактивен
Нащет ($g + 1000) както не додул.
А вот нащет
не мудрено что памятьс таким кодом можеть потечь.
Непонял что ты хотел сказать.
Почему она может потечь, и как ето потечь?
И почему ненужно зчитывать в массив db.txt? Я другого способа невижу.
Отредактировано TLENS (2010.02.12 17:33)
Неактивен
Неактивен
Ну вот смотри
|
|
Отредактировано TLENS (2010.02.13 05:05)
Неактивен
накладные расходы может. нужно смотреть исходники Zend Engine. И пробуй делать все на самых последних стабильных версиях. На данный момент 5.3.1
Неактивен
У меня такая проблема.
Получается слишком длинная строка (больше доступной оперативной памяти).
Периодически мне приходиться ее очищать, и записывать в сторонний источник.
Будет ли разница, при очистки вариантами
1. $var = null;
2. unset($var);
??
Неактивен
Gemorroj написал:
разница в том, определена ли переменная. сама память должна очиститься в обоих случаях.
определена
Неактивен