我使用虾在我的项目中生成一个pdf。
我有下面的代码来生成表格
class PdfGenerator < Prawn::Document
def initialize
super
create_table
end
def create_table
table create_array do
row(0).font_style = :bold
row(0).align = :center
columns(0..2).width = 175
self.row_colors = ["DDDDDD", "FFFFFF"]
self.header = true
end
nil
end
def create_array
table_array = []
5000.times do
table_array << ["first_name", "last_name", "state"]
end
table_array
end
end
基准测试结果
1.9.3-p194 :027 > Benchmark.bm do |x|
1.9.3-p194 :028 > x.report {PdfGenerator.new}
1.9.3-p194 :029?> end
user system total real
33.410000 0.000000 33.410000 ( 33.442593)
=> [ 33.410000 0.000000 33.410000 ( 33.442593)
数组中有大约 5000 个元素,在执行上述代码时,CPU 利用率达到 100%,生成表需要 30 多秒。
这在使用虾时很常见吗?我可以做些什么来提高性能吗?