![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
zomber |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 7.5.2011 Репутация: нет Всего: нет |
подскажите,
сколько памяти можно безопасно "сожрать" в perl ? безопасно в смысле, чтобы это не привело к каким-то ошибкам вот допустим, я мне нужен хеш число + строка до 50 символов какого размера можно сделать хеш ? 10000 записей будет нормально ? а 100000 ? а миллион ? |
|||
|
||||
dixoNICH |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
миллион точно можно)
|
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Эксперементируйте. Devel::Size в помощь.
Вот статья недавно попалась на эту тему: http://codenode.com/perl-memory-usage/ . Про хеши там хорошо описано, сможете примерно посчитать сколько он будет занимать памяти. |
|||
|
||||
xoma |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 4.4.2007 Репутация: нет Всего: нет |
"Unlike most Unix utilities, Perl does not arbitrarily limit the size of your data--if you've got the memory, Perl can slurp in your whole file as a single string."
perldoc perl Perl может "сожрать" всю (почти) память, все зависит от задачи и от разработчика =) |
|||
|
||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
На 32х битных системах вы сможете съесть 2-3 ГБ) А дальше адресного пространства не хватит)
|
|||
|
||||
dixoNICH |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
пытался создать 100-миллионный массив, пришлось перезагружать комп
|
|||
|
||||
vadiml |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
dixoNICH,
Можно было задать ограничение на максимальную память для программы в /etc/security/limits.conf для всех юзеров, для чего-то конкретно |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
dixoNICH, имейте ввиду, что для массивов perl выделяет память очень агрессивно. Читайте по моей ссылке выше. В худшем случае для массива из 100 миллионов элементов perl выделяет память под 200 миллионов элементов.
Добавлено через 12 минут и 55 секунд Кстати моё беглое сравнение по потреблению памяти различными интерпретируемыми языками программирования показало следующие результаты: языки перечислены в порядке уменьшения агрессивности поедания памяти PHP Perl Ruby Python При этом Ruby лучше всех возвращает память системе если его попросить, Python похуже, затем идет Perl (хорошо только для скаляров), у PHP памяти практически вовсе не удалось допроситься (как для скаляров, так и для массивов) |
|||
|
||||
Suppir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Не так давно столкнулся с проблемой. В Windows 7 (32 бит), да и вообще, в любой 32-битной винде, процесс Perl ограничен 2 Гб оперативной памяти. Если использует больше, то вылетает с ошибкой. Если ваш скрипт использует больше оперативки, то необходима 64-битная ОС.
Добавлено через 6 минут и 33 секунды Прочитайте следующие темы: Какой хеш будет меньше занимать оперативки? http://forum.vingrad.ru/forum/topic-325810.html Perl out of memory, Из 4 Гб оперативки использует 2 Гб http://forum.vingrad.ru/forum/topic-325950.html Это сообщение отредактировал(а) Suppir - 10.5.2011, 11:10 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |