Ruby:如何在代码中存储大型数组

时间:2013-06-10 14:53:15

标签: ruby-on-rails ruby xml arrays batch-processing

我的rails应用程序中有一个控制器。这是一个漏洞扫描程序,每次执行代码时都会使用nokogiri从xml文件中读取签名。这显然不是最好的方法。

目前有4个阵列,每个都有~600个元素,它并不多,但代码每天会执行几千次(大量扫描)所以这一切都加起来,我有一个小的vps(2gb ram ,2核心)。将它们存储在代码中使它看起来很混乱,我不确定将它存储在代码中是否被视为最佳实践。

这样做的最佳方法是什么?有没有办法在内存中缓存它,以便它不会每次都读取文件?我该如何优化这个过程?

3 个答案:

答案 0 :(得分:2)

这不是memcached的作用吗?

此外,对于Phusion Passenger服务器,在config.ru运行时加载的任何内容都将存在于fork之前。然后,这将基本上没有每个控制器的开销。

答案 1 :(得分:0)

Memcached可以帮到你。看看this

答案 2 :(得分:0)

我会创建一个本地服务,其中所有必要的数据已经加载到内存中,只是等待函数调用。

这可以使用EventMachine Ruby库轻松实现。