17.12. Profilowanie aplikacji

Problem

Chcemy znaleźć najwolniej działające części aplikacji i przyspieszyć je.

Rozwiązanie

Można włączyć moduł profilowania aplikacji Ruby za pomocą instrukcji include 'profile'. Od tego momentu system profilowania rozpocznie śledzenie i pomiar czasu dla kolejnych wywołań metod. Kiedy aplikacja zakończy działanie, moduł profilowania wyświetla raport na standardowym strumieniu informacji o błędach.

Oto program, w którym występują problemy z wydajnością:

#!/usr/bin/env ruby
# sequence_counter.rb
require 'profile'

total = 0
# Zliczanie sekwencji zawierających litery a, b lub c.
('a'..'zz').each do |seq|
  ['a', 'b', 'c'].each do |i|
    if seq.index(i)
      total += 1
      break
    end
  end
end
puts "Razem: #{total}"

Po uruchomieniu ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.