【发布时间】:2010-11-17 23:25:46
【问题描述】:
我想以 pdf 格式显示大量带有类别标题的产品。如果某个类别不适合当前页面,我想将其移至下一个。为此,我使用了 Prawn 的 group 方法。
Product.all.group_by(&:category).each do |category, products|
pdf.group do
# Simplified the data a bit for this example
pdf.text category
pdf.table products.map{ |p| [p.title, p.price] }
end
end
这对于少量产品非常有效,但是当我添加超过 100 个左右时,它需要很长时间,然后以“分配内存失败”结束。如果我不使用 group 方法大约需要 30 秒。
显然 group 方法不能很好地管理它的内存使用。任何解决方法的建议将不胜感激。
【问题讨论】:
-
在通过 SO 进行更多搜索后,我想我找到了一个可以满足我需求的解决方法:stackoverflow.com/questions/2081635。不幸的是,使用这种方法有完全相同的问题:一段时间后,进程开始占用 100% cpu 并最终导致“分配内存失败”
-
我仍然想知道这个问题的答案,所以我决定添加一个赏金。嘿,值得一试。
-
我在使用 Prawn 和 group 方法时遇到了同样的问题。看起来小组工作正常,直到 PDF 中的第 50 组。那时,遍历后续组需要很长时间。
标签: ruby pdf out-of-memory prawn