WordPressが遅い。初心に戻って検証してみる。その6- load_default_textdomain

前述までのWordPressインストール直後のHelloWorldページプロファイリング、470,612micro second を要した load_default_textdomainを調査。

だんだん処理に時間を要している箇所が絞れてきた。
MO::import_from_file がかなりの処理をやっている。
MO::make_entry
POMO_Reader::substr
Translation_Entry::key

explodechrsubstris_nullなどのPHPの関数を呼んでいる。 これ以上は追えない。

load_default_textdomain
 load_textdomain
  MO::import_from_file
   MO::import_from_reader
    MO::make_entry
    POMO_Reader::substr
    Translation_Entry::key

このあたりの関数は何をやっているのだろうか。

load_textdomain
  
MO::import\_from\_file
     
MO::import\_from\_reader

次はこのあたりの処理を調べたい。

load_default_textdomain

  • load_default_textdomain
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
Current Function
load_default_textdomain17.70%470,61236.70%
Exclusive Metrics for Current Function740.00%
Parent function
run_init::wordpress/wp-settings.php1100.00%470,612100.00%
Child functions
load_textdomain112.50%470,29299.90%
get_locale112.50%840.00%
is_admin112.50%770.00%
is_multisite112.50%320.00%
defined337.50%300.00%
is_network_admin112.50%230.00%
  • load_textdomain
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
load_textdomain211.80%511,99640.00%
Exclusive Metrics for Current Function1830.00%
Parent functions
load_default_textdomain150.00%470,29291.90%
load_theme_textdomain150.00%41,7048.10%
Child functions
MO::import_from_file218.20%511,58599.90%
is_readable218.20%860.00%
apply_filters436.40%610.00%
Translations::merge_with19.10%370.00%
do_action@119.10%230.00%
do_action19.10%210.00%
  • MO::import_from_file
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
Current Function
MO::import_from_file216.70%511,58539.90%
Exclusive Metrics for Current Function1,0200.20%
Parent function
load_textdomain2100.00%511,585100.00%
Child functions
MO::import_from_reader233.30%510,18699.70%
POMO_FileReader::POMO_FileReader233.30%3170.10%
POMO_FileReader::is_resource233.30%620.00%
  • MO::import_from_reader
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
Current Function
MO::import_from_reader20.00%510,18639.80%
Exclusive Metrics for Current Function99,84019.60%
Parent function
MO::import_from_file2100.00%510,186100.00%
Child functions
MO::make_entry1,75816.60%210,33441.20%
POMO_Reader::substr3,52033.20%85,24916.70%
Translation_Entry::key1,75816.60%64,24312.60%
unpack3,52233.20%42,3408.30%
POMO_FileReader::read_all20.00%2,6620.50%
POMO_Reader::str_split40.00%2,0930.40%
Translations::set_headers20.00%1,5610.30%
Gettext_Translations::make_headers20.00%8400.20%
POMO_Reader::readint3220.00%2830.10%
POMO_FileReader::read60.10%2460.00%
POMO_FileReader::seekto40.00%1670.00%
POMO_Reader::strlen60.10%1300.00%
POMO_FileReader::close20.00%800.00%
extract20.00%520.00%
MO::get_byteorder20.00%290.00%
POMO_Reader::setEndian20.00%230.00%
is_array20.00%140.00%
  • MO::make_entry
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
Current Function
MO::make_entry1,75812.50%210,33416.40%
Exclusive Metrics for Current Function103,88549.40%
Parent function
MO::import_from_reader1,758100.00%210,334100.00%
Child functions
explode5,27442.90%46,75422.20%
chr5,27442.90%37,99718.10%
Translation_Entry::Translation_Entry1,75814.30%21,69810.30%
  • POMO_Reader::substr
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
Current Function
POMO_Reader::substr3,52050.00%85,2496.70%
Exclusive Metrics for Current Function57,74167.70%
Parent function
MO::import_from_reader3,520100.00%85,249100.00%
Child function
substr3,520100.00%27,50832.30%
  • Translation_Entry::key
Function NameCallsCalls%Incl. Wall Time(microsec)IWall%
Current Function
Translation_Entry::key2,24832.50%82,7006.50%
Exclusive Metrics for Current Function51,01461.70%
Parent functions
MO::import_from_reader1,75878.20%64,24377.70%
Translations::translate_entry49021.80%18,45722.30%
Child functions
is_null4,49696.60%30,45036.80%
chr1603.40%1,2361.50%

※ 以前に一度プロファイリングやったのだけど解析や記録取りをしなかった。。今回は記録を残してみたが一番大変なのは、この記録を残すことのような。。