| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > память Perl |
| Автор: zomber 7.5.2011, 20:47 |
| подскажите, сколько памяти можно безопасно "сожрать" в perl ? безопасно в смысле, чтобы это не привело к каким-то ошибкам вот допустим, я мне нужен хеш число + строка до 50 символов какого размера можно сделать хеш ? 10000 записей будет нормально ? а 100000 ? а миллион ? |
| Автор: dixoNICH 7.5.2011, 21:45 |
| миллион точно можно) |
| Автор: Pfailed 7.5.2011, 22:04 |
| Эксперементируйте. Devel::Size в помощь. Вот статья недавно попалась на эту тему: http://codenode.com/perl-memory-usage/ . Про хеши там хорошо описано, сможете примерно посчитать сколько он будет занимать памяти. |
| Автор: xoma 7.5.2011, 22:05 |
| "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 8.5.2011, 00:06 |
| На 32х битных системах вы сможете съесть 2-3 ГБ) А дальше адресного пространства не хватит) |
| Автор: dixoNICH 8.5.2011, 10:52 |
| пытался создать 100-миллионный массив, пришлось перезагружать комп |
| Автор: vadiml 8.5.2011, 13:07 |
| dixoNICH, Можно было задать ограничение на максимальную память для программы в /etc/security/limits.conf для всех юзеров, для чего-то конкретно |
| Автор: Pfailed 8.5.2011, 14:02 |
| dixoNICH, имейте ввиду, что для массивов perl выделяет память очень агрессивно. Читайте по моей ссылке выше. В худшем случае для массива из 100 миллионов элементов perl выделяет память под 200 миллионов элементов. Добавлено через 12 минут и 55 секунд Кстати моё беглое сравнение по потреблению памяти различными интерпретируемыми языками программирования показало следующие результаты: языки перечислены в порядке уменьшения агрессивности поедания памяти PHP Perl Ruby Python При этом Ruby лучше всех возвращает память системе если его попросить, Python похуже, затем идет Perl (хорошо только для скаляров), у PHP памяти практически вовсе не удалось допроситься (как для скаляров, так и для массивов) |
| Автор: Suppir 10.5.2011, 11:06 |
| Не так давно столкнулся с проблемой. В 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 |