在有限的资源设备上加速CPAN有什么窍门?
问题描述:
我最近试图升级手机上的几个Perl模块(nokia n900),并在一小时内安装Module::Build
的最新副本。在有限的资源设备上加速CPAN有什么窍门?
大部分时间(70%)似乎都花费在解析和索引存储库信息上。
似乎有几个选项,例如每次不重建索引缓存或使用CPAN :: SQLite。
我想继续在设备上使用CPAN,而不是手动安装模块。所以我想知道人们在类似的有限资源设备(缓慢的CPU,有限的内存,慢速磁盘(闪存))上取得了哪些成功?
答
如果该模块是纯Perl(即没有XS组件,并且不需要编译任何库),则可以将该软件包安装在另一个操作系统的另一台机器上的local::lib目录中,然后简单地复制目录转移到您的设备上。否则(如果需要编译),只要将其安装在相同体系结构的设备上,就可以使用相同的技术来构建模块一次;之后,您可以在多个设备之间共享该库。例如一旦你建立这些软件包,你可以把它们放在你的网页上,与其他诺基亚N900用户共享,并获得许多朋友。 :)
答
如果你在一个有限的RAM环境中操作,就像一个无线路由器或东西,添加交换可以提供帮助。我不认为这就是你想要的,但如果你的CPAN构建内存不足或者死亡,这将会有所帮助。
在shell:
# dd if=/dev/zero of=/path/to/swapfile.swp bs=1M count=512
# mkswap /path/to/swapfile.swp
# swapon /path/to/swapfile.swp
这会给你一个500MiB交换文件。在我的128MB路由器上,这工作正常;我把文件放在一个连接的USB拇指驱动器上。