我的rails应用程序中有一个控制器。这是一个漏洞扫描程序,每次执行代码时都会使用nokogiri从xml文件中读取签名。这显然不是最好的方法。
目前有4个阵列,每个都有~600个元素,它并不多,但代码每天会执行几千次(大量扫描)所以这一切都加起来,我有一个小的vps(2gb ram ,2核心)。将它们存储在代码中使它看起来很混乱,我不确定将它存储在代码中是否被视为最佳实践。
这样做的最佳方法是什么?有没有办法在内存中缓存它,以便它不会每次都读取文件?我该如何优化这个过程?
答案 0 :(得分:2)
这不是memcached的作用吗?
此外,对于Phusion Passenger服务器,在config.ru运行时加载的任何内容都将存在于fork之前。然后,这将基本上没有每个控制器的开销。
答案 1 :(得分:0)
Memcached可以帮到你。看看this。
答案 2 :(得分:0)
我会创建一个本地服务,其中所有必要的数据已经加载到内存中,只是等待函数调用。
这可以使用EventMachine Ruby库轻松实现。