1

我使用虾在我的项目中生成一个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 多秒。

这在使用虾时很常见吗?我可以做些什么来提高性能吗?

4

0 回答 0