Is Ruby 2.3 Faster? Date Parsing Performance
http://ruby-performance-book.com/blog/2016/02/is-ruby-2-3-faster-date-parsing-performance.html Đây là bài viết thứ 2 trong chuỗi các bài viết về hiệu suất của Ruby 2.3. Lần này chúng ta sẽ tìm hiểu về hiệu suất của date parsing. Date parsing sẽ trở nên nhanh hơn trong Ruby 2.3. Đó là một ...
http://ruby-performance-book.com/blog/2016/02/is-ruby-2-3-faster-date-parsing-performance.html
Đây là bài viết thứ 2 trong chuỗi các bài viết về hiệu suất của Ruby 2.3. Lần này chúng ta sẽ tìm hiểu về hiệu suất của date parsing.
Date parsing sẽ trở nên nhanh hơn trong Ruby 2.3. Đó là một cái gì đó tôi đã trả qua trong ngày hôm nay. Nó đã không công bố là có một sự cải tiến trong changelog, và cũng không có bất kì dấu hiệu nào cho thấy Date được tối ưu.
Nhưng kết quả đã cho chúng ta thấy. Hãy xem ví dụ dưới đây
require 'date' require 'benchmark' GC.disable date = "2014-05-23" time = Benchmark.realtime do 100000.times do Date.parse(date) end end puts "%.3f" % time
2.2.3 | 2.3.0 | |
---|---|---|
Date#parse performance | 0.928 ± 0.011 s | 0.843 ± 0.010 s |
Về mặt lý thuyết thì nó không có gì thay đổi. 10% lượng thời gian nhanh hơn chỉ có thể nhìn thấy khi chúng ta parsing date từ một lượng dữ liệu lớn.
Nhưng nếu bạn nhìn vào sự khác biệt giữa Ruby 2.2 và 2.3 (diff), bạn sẽ không thấy bất kì tối ưu nào trong Date parsing. Nó cũng không gây ra tác dụng phụ là thu gom rác thải nhanh hơn, vì tôi đã tắt nó. Vậy vì sao nó lại nhanh hơn?
Tôi chưa đào sâu vào chi tiết. Nhưng tôi nghĩ rằng chúng ta có thể gán cho việc tăng hiệu suất vào chính Ruby VM. Nếu bạn biết chính xác nguyên nhân, hãy nói cho tôi biết.
=> Dự đoán: Nhanh hơn
Date parsing nhanh hơn 10%, nhưng có vẻ như nó không được coi là tin quan trọng. Sự tối ưu hóa một cách tinh tế trong Ruby VM đã mang lại những cải tiến rõ rệt. Đây là là điều chúng ta nhìn thấy lần đầu tiên kể từ Ruby 1.9.3.