おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2004年06月13日(Sun) また日が変わっちゃったよ [同日]

[tDiary] リンク元プラグインのプロファイルを取ってみる

なんだか青木さんの手をわずらわせてるみたいで無闇にがんばってみたりして。

disp_referrer.rbのparse_as_searchだけでプロファイルを取ってみました。

Index: disp_referrer.rb
===================================================================
RCS file: /cvsroot/tdiary/plugin/disp_referrer.rb,v
retrieving revision 1.38
diff -u -r1.38 disp_referrer.rb
--- disp_referrer.rb	12 Jun 2004 10:45:28 -0000	1.38
+++ disp_referrer.rb	13 Jun 2004 12:27:52 -0000
@@ -631,6 +631,7 @@
 
 	private
 		def parse_as_search( setup )
+set_trace_func Profiler__::PROFILE_PROC
 			# see which search engine is used
 			engine = DispRef2String::company_name( @url, setup['search_engines'] )
 			return nil unless engine
@@ -693,6 +694,7 @@
 			@title_group = @title
 			@key = @title_group
 
+set_trace_func nil
 			self
 		end
 
@@ -1455,3 +1457,10 @@
 else
 	DispRef2Latest_cache = nil
 end
+
+require 'profiler'
+END {
+	Profiler__::print_profile(STDERR)
+}
+Profiler__::start_profile
+Profiler__::stop_profile

この日誌の22192個(うち21223個)のURLをパースした時のプロファイルをhead -20したのが下記。

  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
 29.86   459.09    459.09    87094     5.27    10.77  Array#each
 16.80   717.33    258.24      969   266.50   320.65  Array#referer_scheme_each_orig
  5.63   803.88     86.55   278363     0.31     0.39  Hash#[]
  3.82   862.66     58.78   130499     0.45     0.63  Class#new
  2.57   902.19     39.53   219061     0.18     0.18  Array#[]
  2.54   941.20     39.01   173420     0.22     0.22  String#split
  2.17   974.63     33.43    67985     0.49     0.61  String#gsub
  2.04  1005.97     31.34   151826     0.21     0.21  String#gsub!
  1.97  1036.20     30.23    22192     1.36     5.15  TDiary::Plugin::DispRef2String#company_name
  1.88  1065.12     28.92    21281     1.36    21.55  TDiary::Plugin::DispRef2String#parse_query
  1.66  1090.62     25.50    44191     0.58     0.81  #<TDiary::Config:0x4028606c>.to_native
  1.64  1115.80     25.18    44191     0.57     1.38  TDiary::Plugin::DispRef2Setup#to_native
  1.60  1140.34     24.54    21477     1.14    15.58  Kernel.catch
  1.50  1163.40     23.06    21223     1.09     1.64  TDiary::Plugin::DispRef2String#normalize
  1.38  1184.54     21.14   108275     0.20     0.20  Hash#[]=
  1.37  1205.65     21.11   122103     0.17     0.17  Hash#default
  1.35  1226.40     20.75    22968     0.90     2.54  TDiary::Plugin::DispRef2String#unescape
  1.21  1244.99     18.59   108249     0.17     0.17  Array#initialize

Array#eachってsetup['search_engines'][engine].each do |e|の分かなあ。こいつを減らすのは…うーん。

…寝る。

言葉ごちゃまぜ

Mahalo*1と言われて、とっさにBitte*2と答えてしまった。せめて英語で答えればいいのにね。

*1 Mahaloはハワイ語で「ありがとう」

*2 Bitteはドイツ語で「どういたしまして」

今日の日記が見えなくなって焦る

タイプミスで「この日の日記を隠す」ようになってました。あーびっくりした。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>