1154839 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Recent Posts

Free Space

=== ステーショナリーショップ ===

筆記具

 ペンルーム
カランダッシュ復刻版のベネシアン 稀少品再入荷。さざ波をイメージしたデザインのロジウムコーティングボディ

 NOMADO1230楽天市場店
  3240円以上で送料無料。ギフトサービスが充実。
  ≫ プレゼント用商品画像提供サービス
  ≫ 「LE PINEA」クッキーギフトセット
 KINGDOM NOTE
  中古品が充実。7日間の返品保証商品も。
  ≫ お買物アシストサービス
 高級万年筆の文栄堂
万年筆の王道
モンブランマイスターシュテュック 149


総合文具

 文房具屋さんワキ文具
  ≫ ロディア工場訪問記
  ≫ できる女を磨く文房具たち
  ≫ できる男を上げる文房具たち
  ≫ オフィスの雰囲気を変えるアイテム
 ナガサワ文具センター
 神戸インク物語 波止場ブルー


 文具・文房具のKDM 楽天市場支店
  3500円以上で送料無料
 コクヨS&Tショーケース
  1500円以上で送料無料
  ≫ キャンパスノートがなんでも揃う

輸入文具

 輸入文具のイーオフィス
  3000円以上で送料無料
 文房具屋フジオカ文具e-stationery
  5250円以上で送料無料

書斎

 書斎空間 『万年筆キング』
  5250円以上で送料無料
 BISLEY 正規代理店楽天ショップ
  配送料金表
 WORKAHOLIC store オフィスチェアーズ
  6300円以上で送料無料
 アーロンチェアの庄文堂ネクスト
  送料無料(送料込み価格)
 インテリア収納ブランドmargherita
  10500円以上で送料無料。建築計画事務所デザインによる本棚・シェルフ・収納ラック

ステーショナリーを扱うデザイン雑貨

 雑貨 HIGHTIDE DAILY DEPOT
  6000円以上で送料無料
 The Wind
  3150円以上で送料無料
 etrangerdicostarica
  3150円以上で送料無料
 surou web shop
  7000円以上で送料無料 丸川商店日事記10年日記帳

セレクトショップ

 セレクトショップ AER (アエル)
ペリカンスーベレーン M400 送料無料で安い

画材・ハンドメイド・オフィス文具

 エンオーク
  5250円以上で送料無料
 オフィス308
  3000円以上で送料無料

R0010996-001.JPG



《 ステーショナリーMap 》

エリアのクールなステーショナリー満載のお店をピックアップ

東京・銀座エリア
六本木エリア





2011.04.17
XML
テーマ:私のPC生活(7398)
カテゴリ:ノウハウ・WEB
 
PHPでのWeb開発で、require,やrequire_onceでのファイル読み込みは、コストが高く、絶対パスでの記述が推奨されています。


チューニングをしている中で、Zendのクラスのロードの時間がかかっていることに気づき、ふとZendのクラスをみると、 reqire_once 'Zend/・・・' というぐあいに、相対パスで記述されていることい気づいた。

インストールの柔軟性の確保のためにこうしているのだろう。


試しに、ZendFrameWork自体に、絶対パスにするパッチを当ててみたところ、下記のように、かなり高速化が実現できた。


実施結果



require 'Zend/Controller/Action.php'
   0.039Sec ⇒ 0.021sec

require 'Zend/View.php'
    0.024sec ⇒ 0.0123sec

require 'Zend/Session.php'
    0.020sec ⇒ 0.009sec


ディスクの遅いノートPCのWindowsXP環境の測定なので、高速なサーバ環境のLinuxではまた違う結果になるとは思いますが、多少の効果は期待できます。


初期のクラスのロードだけでなく、クラス継承して実行しているところでも、あらたにrequire_onceがあるのか、多少速くなった。

---------------------------------

【2011/5/10 追記】

php.iniにて

real_path_cache_size = 64k
realpath_cache =120

として、パスのキャッシュが有効になったら、相対パス指定のままでも、下記にあまり劣らない速度がでました。

絶対パスへの置換は、実験的な扱いととらえていただき、上記キャッシュの指定を行うことが無難かと思います。

---------------------------------

試験環境



ちなみにその他の環境は下記の通り

  PHPは、5.24
  Windowsのpathの1個目でZendのライブラリを指定
  php.iniの realpath_cache_size = 64k
       realpath_cache-ttl = 120


ZendFrameWorkのパッチ手順



1)Library配下のZendフォルダ全体を Zend_bkupとしてバックアップ

2)Library配下のZendフォルダの文字列置換
    「require_once 'Zend/」 ⇒ 「require_once C_ZEND_ROOT.'/Zend/」

3)アプリの先頭でZendのインストール先ディレクトリを定義する
    define('C_ZEND_ROOT','c:/・・・・・/library');

  ※2)の置換では、eclipseを用いました
      Library配下のZendフォルダをeclipseのプロジェクトとして設定
      eclipseのSearch>Fileで上記の置換を実施

 5000か所近くリプレースされました


パッチの戻し手順



バックアップをとった 「Zend_bkup」フォルダとパッチした「Zend」フォルダを入れ替えるだけで簡単に元に戻せます。

   「Zend」フォルダを「Zend_20110417」にリネーム
   「Zend_bkup」フォルダを 「Zend」にリネーム

上記操作で戻ります。




基本的に、絶対パスにしただけの簡単なパッチとはいえ、5000か所近くリプレースされたので、実際の運用に適用するのは怖いものがありますが・・・


そもそもreal_path_cacheが有効に効いていれば、こんなに差が出ることはないと思うのですが・・・



【送料無料】PHP HACKS

【送料無料】PHP HACKS
価格:3,780円(税込、送料別)




【送料無料】入門PHPセキュリティ

【送料無料】入門PHPセキュリティ
価格:1,890円(税込、送料別)




【送料無料】PHP:The Good Parts

【送料無料】PHP:The Good Parts
価格:1,890円(税込、送料別)




▼ 楽天 検索キーワード ▼

「Zend」
「PHP」

↓ 検索はこちらから






お気に入りの記事を「いいね!」で応援しよう

Last updated  2011.05.10 20:51:35
コメント(0) | コメントを書く



© Rakuten Group, Inc.