Контроллер бенчмаркинга + просмотр вместе, много раз за один раз

Я учусь сравнивать две реализации в контроллере / представлении. Они делают то же самое, но одно выполняется в поле зрения, а другое - в контроллере. Код показан ниже. Мои вопросы:

  1. Можно ли измерить 100 раз рендеринга одного и того же действия за один раз?
  2. Правильно ли мой текущий бенчмаркинг измеряет комбинацию времени просмотра + времени контроллера?
  3. есть ли лучший способ сделать это?

```

  def sort_in_view
    self.class.benchmark("$sort in view") do
      @regions = Region.all

      respond_to do |format|
        format.html
      end
    end
  end

  def sort_in_controller
    self.class.benchmark("$sort in controller") do
      @regions = {}
      Region.all.each do |r|
        @regions[r] = r.countries.order_by_name
      end

      respond_to do |format|
        format.html
      end
    end
  end

person lulalala    schedule 20.01.2012    source источник
comment
см. этот ответ stackoverflow.com/ вопросы / 31320 /   -  person Ben    schedule 13.03.2013


Ответы (2)


Чтобы выполнить каждый случай много раз и получить более точное среднее значение, в конце я использовал Apache Benchmark.

ab -c 1 -n 100 http://example.com/regions

Это выполнит запрос 100 раз (с одновременностью 1) и предоставит вам подробную сводку среднего и процентилей. Я тестирую на своем локальном компьютере, и это экономит время, так как браузерный рендеринг не требуется.

person lulalala    schedule 13.03.2013

посмотрите результаты benchmaek, просто посмотрите свой журнал Rails

person wxianfeng    schedule 22.02.2012