루비 프로그램 맨 위에 다음과 같이 적어주면 된다.
(여기를 참고.)
require ‘profile’
또는 ruby의 command-line parameter로 ‘-rprofile’을 줘도 된다. (역시 profile module을 맨처음 require하는 의미)
이런 방식으로 profiler와 함께 실행시켜보면 다음과 같은 결과를 볼 수 있을 것이다.
% cumulative self self total time seconds seconds calls ms/call ms/call name 35.56 0.16 0.16 86 1.86 7.44 Kernel.require 8.89 0.20 0.04 57 0.70 1.58 SubscriptionManager#constructSubscriptionFromRow 8.89 0.24 0.04 203 0.20 0.30 Kernel.puts 6.67 0.27 0.03 23 1.30 10.00 Array#each 6.67 0.30 0.03 7 4.29 12.86 Mysql::Result#each 6.67 0.33 0.03 728 0.04 0.04 Array#[] 4.44 0.35 0.02 407 0.05 0.05 IO#write 4.44 0.37 0.02 18 1.11 1.11 Mysql#initialize 2.22 0.38 0.01 92 0.11 0.11 Kernel.== 2.22 0.39 0.01 80 0.13 0.13 String#== 2.22 0.40 0.01 13 0.77 0.77 Module#attr_accessor 2.22 0.41 0.01 18 0.56 0.56 Mysql#query 2.22 0.42 0.01 119 0.08 0.08 Fixnum#to_s 2.22 0.43 0.01 31 0.32 0.32 Module#attr_reader 2.22 0.44 0.01 22 0.45 0.45 Module#alias_method 2.22 0.45 0.01 57 0.18 0.18 Subscription#initialize
한편, eruby interpreter랑은 좀 이상하게 동작하는 (무한루프) 문제가 있어서, eruby tag를 모두 빼고 테스트해야만 했다. 이 문제는 좀 더 살펴보아야겠다.
ruby를 쓰시나 봅니다. 순수 객체 지향에 가깝다는 말은 들었는데 아직 접해보지는 못했습니다. :-)