Làm thế nào để có được thời gian thực thi trong bảng điều khiển rails?


104

Tôi muốn so sánh thời gian thực hiện Post.allSELECT * FROM posts(hoặc một số câu lệnh khác) Làm thế nào tôi có thể nhận được thời gian thực hiện Post.all?

Câu trả lời:


239
timing = Benchmark.measure { Post.all }

Các thuộc tính khác nhau của đối tượng được trả về (Điểm chuẩn :: Tms) được cung cấp tại đây .


5
Tôi thấy bài đăng này rất hữu ích: caseyscarborough.com/blog/2013/07/22/…
hernanvicente

@Bohdan Sẽ tốt hơn nếu bạn thêm một câu trả lời hoặc nhận xét khác có tham chiếu đến viên ngọc benchmark-ips? Bạn đã thực hiện một chỉnh sửa khá lớn đối với câu trả lời ở đó làm thay đổi nó đáng kể và thay vào đó làm giảm tính thích hợp của các phiếu bầu trên đó.
Shadwell

@Bohdan Đã ủng hộ. Bạn luôn có thể thay đổi câu trả lời đã chấp nhận nếu câu trả lời mới trở nên phù hợp hơn.
Shadwell

4

Với đá quý benchmark-ips :

2.3.0 :001 > require 'benchmark/ips'
=> true 
2.3.0 :002 > Benchmark.ips do |x|
2.3.0 :003 >       x.report("add: ") { 1+2 }
2.3.0 :004?>       x.report("div: ") { 1/2 }
2.3.0 :005?>       x.report("iis: ") { 1/2.0 }
2.3.0 :006?>   end
Warming up --------------------------------------
           add:    280.299k i/100ms
           div:    278.189k i/100ms
           iis:    266.526k i/100ms
Calculating -------------------------------------
           add:      11.381M  4.5%) i/s -     56.901M in   5.010669s
           div:       9.879M  4.6%) i/s -     49.518M in   5.024084s
           iis:       9.289M  4.2%) i/s -     46.376M in   5.001639s

0

Đây là phiên bản của tôi về cách đo hiệu suất tự động trong bảng điều khiển rails bằng gem: https://github.com/igorkasyanchuk/execution_time

Nó hiển thị thông tin tương tự mà bạn đã thấy trong các yêu cầu.

Mẫu vật:

[METRICS] Completed in 908.3ms | Allocations: 2894 | ActiveRecord: 0.9ms (queries: 13)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.