Каковы ваши приемы для ускорения CPAN на устройствах с ограниченными ресурсами? - PullRequest
10 голосов
/ 03 июля 2010

Недавно я пытался обновить несколько модулей Perl на своем мобильном телефоне (nokia n900) и установить последнюю копию Module::Build на час.

Большую часть времени (70%), по-видимому, было потрачено на разбор и индексацию информации хранилища.

Кажется, есть несколько вариантов, таких как не перестроение кэша индекса каждый разиспользуя CPAN :: SQLite.

Я бы хотел продолжить использовать CPAN на устройстве, а не устанавливать модули вручную.Поэтому мне интересно, с какими технологиями люди добились успеха на аналогичных устройствах с ограниченными ресурсами (медленный процессор, ограниченный ОЗУ, медленный диск (флэш-память))?

Ответы [ 3 ]

6 голосов
/ 03 июля 2010

Я считаю, что это было одной из основных причин, почему Миягава создал cpanminus.

Из пакета:

Другой установщик CPAN?

ОК, первая причина была в следующем: оболочке CPAN не хватает памяти (или она сильно меняется и становится очень медленной) на самом доступном плане Slicehost / linode с 256 МБ ОЗУ. Должен ли я платить больше, чтобы установить модули Perl из CPAN? Я так не думаю.

Я не использовал cpanm на устройстве / машине с ограниченными ресурсами, но я использовал его исключительно на своем Perl 5.12 dev, и это было мечтой!

/ I3az /

1 голос
/ 19 января 2012

Если вы работаете в среде с ограниченной оперативной памятью, например, в беспроводном маршрутизаторе или чем-то еще, добавление свопа может помочь Я не думаю, что это именно то, что вы ищете, но если в ваших сборках CPAN не хватает памяти или они убиты, это поможет.

В оболочке:

# dd if=/dev/zero of=/path/to/swapfile.swp bs=1M count=512
# mkswap /path/to/swapfile.swp
# swapon /path/to/swapfile.swp

Это даст вам файл подкачки 500 МБ. На моем маршрутизаторе 128MB это работало нормально; Я положил файл на подключенный флэш-накопитель USB.

1 голос
/ 03 июля 2010

Если модуль является чистым Perl (т.е. не имеет компонентов XS и не требует компиляции какой-либо библиотеки), вы можете установить пакет на другом компьютере другой операционной системы в local :: lib каталог, а затем просто скопируйте этот каталог на ваше устройство.

В противном случае (если необходима компиляция), тот же метод можно использовать для сборки модуля только один раз, при условии, что вы устанавливаете его на устройстве с той же архитектурой; После этого вы можете поделиться библиотекой между несколькими устройствами. например собрав эти пакеты, вы можете разместить их на своей веб-странице, чтобы поделиться ими с другими пользователями Nokia n900 и обрести много друзей. :)

...