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


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

POMO_Reader::substr

Translation_Entry::key
はexplode、chr、substr、is_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

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
load_default_textdomain 1 7.7% 470,612 36.7%
Exclusive Metrics for Current Function 74 0.0%
Parent function
run_init::wordpress/wp-settings.php 1 100.0% 470,612 100.0%
Child functions
load_textdomain 1 12.5% 470,292 99.9%
get_locale 1 12.5% 84 0.0%
is_admin 1 12.5% 77 0.0%
is_multisite 1 12.5% 32 0.0%
defined 3 37.5% 30 0.0%
is_network_admin 1 12.5% 23 0.0%

load_textdomain

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
load_textdomain 2 11.8% 511,996 40.0%
Exclusive Metrics for Current Function 183 0.0%
Parent functions
load_default_textdomain 1 50.0% 470,292 91.9%
load_theme_textdomain 1 50.0% 41,704 8.1%
Child functions
MO::import_from_file 2 18.2% 511,585 99.9%
is_readable 2 18.2% 86 0.0%
apply_filters 4 36.4% 61 0.0%
Translations::merge_with 1 9.1% 37 0.0%
do_action@1 1 9.1% 23 0.0%
do_action 1 9.1% 21 0.0%

MO::import_from_file

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
MO::import_from_file 2 16.7% 511,585 39.9%
Exclusive Metrics for Current Function 1,020 0.2%
Parent function
load_textdomain 2 100.0% 511,585 100.0%
Child functions
MO::import_from_reader 2 33.3% 510,186 99.7%
POMO_FileReader::POMO_FileReader 2 33.3% 317 0.1%
POMO_FileReader::is_resource 2 33.3% 62 0.0%

MO::import_from_reader

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
MO::import_from_reader 2 0.0% 510,186 39.8%
Exclusive Metrics for Current Function 99,840 19.6%
Parent function
MO::import_from_file 2 100.0% 510,186 100.0%
Child functions
MO::make_entry 1,758 16.6% 210,334 41.2%
POMO_Reader::substr 3,520 33.2% 85,249 16.7%
Translation_Entry::key 1,758 16.6% 64,243 12.6%
unpack 3,522 33.2% 42,340 8.3%
POMO_FileReader::read_all 2 0.0% 2,662 0.5%
POMO_Reader::str_split 4 0.0% 2,093 0.4%
Translations::set_headers 2 0.0% 1,561 0.3%
Gettext_Translations::make_headers 2 0.0% 840 0.2%
POMO_Reader::readint32 2 0.0% 283 0.1%
POMO_FileReader::read 6 0.1% 246 0.0%
POMO_FileReader::seekto 4 0.0% 167 0.0%
POMO_Reader::strlen 6 0.1% 130 0.0%
POMO_FileReader::close 2 0.0% 80 0.0%
extract 2 0.0% 52 0.0%
MO::get_byteorder 2 0.0% 29 0.0%
POMO_Reader::setEndian 2 0.0% 23 0.0%
is_array 2 0.0% 14 0.0%

MO::make_entry

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
MO::make_entry 1,758 12.5% 210,334 16.4%
Exclusive Metrics for Current Function 103,885 49.4%
Parent function
MO::import_from_reader 1,758 100.0% 210,334 100.0%
Child functions
explode 5,274 42.9% 46,754 22.2%
chr 5,274 42.9% 37,997 18.1%
Translation_Entry::Translation_Entry 1,758 14.3% 21,698 10.3%

POMO_Reader::substr

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
POMO_Reader::substr 3,520 50.0% 85,249 6.7%
Exclusive Metrics for Current Function 57,741 67.7%
Parent function
MO::import_from_reader 3,520 100.0% 85,249 100.0%
Child function
substr 3,520 100.0% 27,508 32.3%

Translation_Entry::key

Function Name Calls Calls% Incl. Wall Time
(microsec)
IWall%
Current Function
Translation_Entry::key 2,248 32.5% 82,700 6.5%
Exclusive Metrics for Current Function 51,014 61.7%
Parent functions
MO::import_from_reader 1,758 78.2% 64,243 77.7%
Translations::translate_entry 490 21.8% 18,457 22.3%
Child functions
is_null 4,496 96.6% 30,450 36.8%
chr 160 3.4% 1,236 1.5%

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