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

Сможете дать пример PHP скрипта который выдает утечку и объяснить где этот объем утечки можно увидеть?
...
Рейтинг: 0 / 0
02.07.2013, 20:33
    #38317754
c-alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать и обнаружить утечку памяти (memory leak)
уточняю: "скрипт выдает утечку" в смысле скрипт, после выполнения которого получается утечка памяти
...
Рейтинг: 0 / 0
02.07.2013, 22:00
    #38317847
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать и обнаружить утечку памяти (memory leak)
...
Рейтинг: 0 / 0
02.07.2013, 23:14
    #38317898
c-alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать и обнаружить утечку памяти (memory leak)
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
04.07.2013, 11:13
    #38320104
c-alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать и обнаружить утечку памяти (memory leak)
anybody home ?
...
Рейтинг: 0 / 0
04.07.2013, 22:23
    #38321236
c-alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать и обнаружить утечку памяти (memory leak)
Нашел код который вызывает утечку:

Код: 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
04.07.2013, 22:25
    #38321238
c-alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать и обнаружить утечку памяти (memory leak)
c-alexНашел код который вызывает утечку:


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


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