powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как создать и обнаружить утечку памяти (memory leak)
9 сообщений из 9, страница 1 из 1
Как создать и обнаружить утечку памяти (memory leak)
    #38317753
c-alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Пытаюсь разобраться что такое утечка памяти в PHP.
Целый день гуглил не могу понять, где и как можно увидеть есть утечка памяти в скрипте или нет.

Сможете дать пример PHP скрипта который выдает утечку и объяснить где этот объем утечки можно увидеть?
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38317754
c-alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уточняю: "скрипт выдает утечку" в смысле скрипт, после выполнения которого получается утечка памяти
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38317847
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38317898
c-alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett http://rmcreative.ru/blog/post/utechki-pamjati-v-php
да, я читал эту статью.
Выполнял указанный там скрипт (там где Class A и B), тестировал на PHP 5.2.17 (cli) (built: Jan 6 2011 17:28:41) Zend Engine v2.2.0
в 1-м скрипте memory_get_usage() выдает
в начале: 59880
в конце: 452176

во 2-м скрипте memory_get_usage() выдает
в начале: 60440
в конце: 452744

что я должен был из этого понять?
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38320104
c-alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anybody home ?
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38321236
c-alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел код который вызывает утечку:

Код: sql
1.
2.
3.
4.
5.
6.
while(true)
{
	$var = create_function('', '$a = 0;');
	unset($var);
}
unset($i);



в результате получаю:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 6144 bytes) in D:\www\tst\mleak.php(5) : runtime-created function on line 1

после аварийного завершения скрипта память возвращается операционной системе, процесс HTTPD.EXE (Apache) занимает столько же памяти сколько и до запуска скрипта (иногда и меньше).

Вопрос: Как создать утечку памяти чтобы Apache занимал памяти с каждым выполнением скрипта все больше и больше и не отдавал эту память операционной системе? Ведь это и есть самый страшный вариант утечки памяти?

Есть проект, обычный сайт - memory_get_peak_usage() показывает максимум 2,5 мб при загрузке страницы. Этот сайт после определенного времени работы потребляет всю память (2GB).
Пытаюсь с этим разобраться.
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38321238
c-alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c-alexНашел код который вызывает утечку:


нашел в смысле не у себя в проекте, а вообще в интернете код-пример утечки.
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38321350
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
c-alexВопрос: Как создать утечку памяти чтобы Apache занимал памяти с каждым выполнением скрипта все больше и больше и не отдавал эту память операционной системе? Ведь это и есть самый страшный вариант утечки памяти? Написать расширение для php, которое будет выделять память не через php api, а напрямую у системы, и не возвращать ее.
...
Рейтинг: 0 / 0
Как создать и обнаружить утечку памяти (memory leak)
    #38321351
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
При завершении скрипта вся выделенная скриптом память освобождается. Теоретически, в каких-то версиях ПХП могут быть какие-то криво написанные расширения, которые работают неправильно и дают утечку системной памяти.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как создать и обнаружить утечку памяти (memory leak)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]