![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| admsasha |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
вот что показывает
Без модуля List::Util пробывал, тоже самое (проверял через top) т.е. судя по этому примеру идет постоянная утечка в памяти. Что не так делаю ?
Это сообщение отредактировал(а) admsasha - 26.9.2009, 10:20 |
||||||
|
|||||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 9 Всего: 50 |
||||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
незнаю, почему так показал модуль, но вот реальный perl
последний, на данный момент это "5.10.1". Так что не такой уж и старый. Это сообщение отредактировал(а) admsasha - 26.9.2009, 16:13 |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 5 Всего: 27 |
Нумерация под-веток версии занимает по три цифры: 5.008008 == 5.8.8. admsasha, это не утечка памяти. Недавно был уже подобный топик. Это сообщение отредактировал(а) KSURi - 26.9.2009, 17:17 -------------------- Died at Life.pl line 21 |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
||||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 5 Всего: 27 |
На всякий случай добавлю, что запрос у вас не выполняется)
Добавлено @ 17:20 Ссылка: http://forum.vingrad.ru/act-Search/f-595.html Это сообщение отредактировал(а) KSURi - 26.9.2009, 17:21 -------------------- Died at Life.pl line 21 |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
я поиск знаю где, но что искать, если это не утечка памяти, то что ? |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: нет Всего: 17 |
В 5.10.х текут weak references. Для dbi::prepare это кусок кода внутри dbih_setup_handle. На 5.8.8 этой утечки нет (зато есть свои, но их обходить проще - поэтому я не перехожу на 5.10).
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 6 Всего: 49 |
DurRandir, можно какую-нибудь ссылку по поводу dbih_setup_handle? Касательно темы, я нашел только http://rt.perl.org/rt3//Public/Bug/Display.html?id=56908, но это ошибка в самом Perl, исправленная в 5.10.1.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: нет Всего: 17 |
Я и подразумевал сам перл. У меня аналогичная проблема с другим модулем была. 5.10.1 правда не тестировал - под рукой только 5.10.0 win32.
По твоей ссылке в последних сообщениях - "DBI uses weakrefs for only one thing", и дальше описание что сломалось. dbih_setup_handle - это из xs-части DBI, внутренности prepare(). |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Обновил DBI
Ничего не поменялось, всё тоже самое. А нет, поменялось, теперь изначально памяти ест больше ( |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: нет Всего: 17 |
>admsasha
Дело не в DBI. Дело в версии перла. Есть следующие варианты: - обновиться до 5.10.0.1, если судить по комментариям в баге для DBI - там исправлено, но мне негде проверить. - откатиться назад до 5.8.8 - там точно нет утечки в этом месте, я проверял у себя на v5.8.8 built for i386-freebsd-64int - поставить вопрос по другому - а зачем постоянно создавать/уничтожать handles? У вас fastcgi/mod_perl и модуль выполняет большое количество запросов? Можно уменьшить время жизни, можно пересмотреть архитектуру. Лучший вариант - один prepare() и использовать его много раз. |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Это демон который периодически работает с базой. Откатиться назад нет возможности. Это очень сокращенный пример, чтобы показать суть проблемы. ( я даже execute() забыл) Это сообщение отредактировал(а) admsasha - 28.9.2009, 13:16 |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Похоже только KSURi знает ответ, но он никому не скажет |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 6 Всего: 49 |
admsasha, Вам же уже сказали, поставьте perl 5.10.1. Или этот вариант Вам тоже не подходит?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |