Контроллер бенчмаркинга + просмотр вместе, много раз за один раз - PullRequest
2 голосов
/ 20 января 2012

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

  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

Ответы [ 2 ]

1 голос
/ 13 марта 2013

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

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

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

0 голосов
/ 22 февраля 2012

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

...