トップ  > メモ一覧  > カテゴリ「高速化」の絞り込み結果 : 10件

10件中 1 〜 10 表示  1 

No.3877 PHPでの「ORMライブラリ」機能比較(2/5):CodeZine

PHPでの「ORMライブラリ」機能比較(2/5):CodeZine
http://codezine.jp/article/detail/5858?p=2

引用元

更新:2011/07/05 18:22 カテゴリ: PHP  > 高速化 ▲トップ

No.2234 【APC】コマンドラインの設定

apc.enable_cli=1
更新:2010/03/29 18:58 カテゴリ: PHP  > 高速化 ▲トップ

No.1837 phpのプロファイル解析

phpのプロファイル解析

◆xdebug設定
xdebugインストール

設定の追記(/etc/php.ini)
---------------------------
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /tmp/xdebug
xdebug.profiler_output_name = cachegrind.out.%s
---------------------------

※/tmp/xdebugを用意しておく
mkdir /tmp/xdebug
chmod 777 /tmp/xdebug

◆webgrind
取得ページ: http://code.google.com/p/webgrind/
展開
アクセス可能な場所におく

config.php の設定を変更
---------------------------
static $profilerDir = '/tmp/xdebug';
---------------------------

chmod 755 index.php

○設置したURLにアクセス
http://192.168.253.128/webgrind/

引用元

更新:2009/12/08 20:16 カテゴリ: PHP  > 高速化 ▲トップ

No.1835 WinCacheGrindの替わりにWebgrindを使ってみよう

WinCacheGrindの替わりにWebgrindを使ってみようAdd Star


今回はXdebugを使用したプロファイル結果を閲覧するwebgrindの紹介です。

インストールはまずプロジェクトトップページダウンロードページからダウンロードしてアクセス可能なところに展開します。

次に、プロファイル結果を保存しているディレクトリをconfig.phpのprofileDirに設定します。あとは、セレクトボックスに表示されれば終了です。

webgrindはPHPで記述されたWebアプリなので、Xdebugを使用しているサーバ上で動作させることができます。今まで使っていたWinCacheGrindとwebgrindを比較した際の良い点、悪い点をまとめてみました。

1. プロファイル結果をクライアントに移す必要がない

今回使用してみて一番よいなと思ったのが、サーバ上で動作させることができるので、プロファイル結果をWinCacheGrindがインストールされてい るマシンに移さなくてもよいということです。プロファイル結果は数MBにもなるので、結構移すのが面倒だったりするので、これは大きなメリットです。

ただこの点に関しては、同一のマシンにWinCacheGrindやKCacheGrindなどがインストールされている場合は、あまりメリットはないかも知れません。

それと、webgrindもPHPで記述されたWebアプリなので、プロファイル結果を閲覧する場合のフローは以下のようになります。

Xdebugでプロファイリングを有効にする

スクリプトを実行

Xdebugを無効にする

webgrindのページにアクセス

一度Xdebugを無効にしないと余計なプロファイル結果が出てきてしまうので、要注意です。

2. スクリプトをWebから閲覧できる

これもWebアプリならではだと思いますが、時間がかかっている関数の呼び出し部分をブラウザ上で閲覧することができます。

ちょっとしたことですが、結構便利だと思います。

以下は悪い点です。

3. 動作が遅い

WinCacheGrindもかなり遅いですが、webgrindの方が動作がもっさりしている感じがします。とくに関数の詳細(中で何を呼んでいるかなど)を閲覧するのにサーバへのアクセスが発生するようで、もっさり・イライラしてきました。

4. 操作性が悪い

WinCacheGrindでは、関数の呼び出しが階層化されていて、ダブルクリックで下の階層に移っていくことができますが、webgrindでは階層化されていません。




階層化されていないという以外は、特定の関数内で何が呼ばれているか、その関数がどこから呼び出されているか、何回呼び出されているか、どれだけ時間がかかったのか、などの基本機能はあります。



とりあえず、簡単にですが使ってみてですが、結構使えるかも!というのが印象です。

開発はわりと活発に行われているようなので、今後に期待です。

引用元

更新:2009/12/08 14:33 カテゴリ: PHP  > 高速化 ▲トップ

No.1807 PHPをより高速化するプロファイリングツールあれこれ

PHPをより高速化するプロファイリングツールあれこれ


PHPを高速化するために中間キャッシュを使う各種PHPアクセラレータについては以前に「PHPアクセラレータで一番高速なのはどれか?」で書きましたが、そういう方法以外にどこで時間がかかっているのか(ボトルネック)を見つけ出すことによって、根本的に高速化するという手法もちろんあるわけで。

そういう作業に役立ちそうなツールがいろいろとあるようなので実際の使い方と一緒に見てみましょう。


SitePoint Blogs >> Faster PHP Apps-Profile Your Code with Xdebug

「Xdebug」というのがどうも一般的のようです。Windows用のモジュールもあり、PHP4だけでなく5にも対応。

Xdebug - Debugger and Profiler Tool for PHP
http://www.xdebug.org/


Xdebugだけだとプロファイリングした結果をわかりやすく見ることはできないので別途、Windows環境であれば「WinCacheGrind」、 LinuxやMac OS Xであれば「KCachegrind」を使うと、プロファイリング結果をかなり視覚的にわかりやすく表示できるようです。

SourceForge.net: WinCacheGrind
http://sourceforge.net/projects/wincachegrind/


KcacheGrindIndex
http://kcachegrind.sourceforge.net/



これらのツールを組み合わせた実際のプロファイリング手順は以下の記事が参考になります。

PHP アプリケーションを高速に、より高速に、最高速にする、第 2 回: PHP アプリケーションをプロファイリングして遅いコードを発見し、診断し、高速化する

プロファイリング:xdebug + WinCacheGrind - Y-110's Wiki

【PHP TIPS】 28. XdebugとWinCacheGrindを使って、パフォーマンス測定を行おう:ITpro

【PHPウォッチ】第11回 PHP4/PHP5にバグ修正版,高機能デバッグ・ツールXdebug登場:ITpro

・関連記事
PHPのスキルを上げる100以上のプレゼンテーション資料 - GIGAZINE

世界のPHPテンプレートエンジン、トップ25 - GIGAZINE

Windows付属ピンボールのボールをマウスで動かす裏コマンド - GIGAZINE

iPodの診断モードに入る方法 - GIGAZINE

2007年04月24日 10時14分00秒 in ソフトウェアスクリプトLinux Posted by darkhorse

トラックバック一覧:

PHP

PHP
Tracked on: Toshiyuki Kawanishi Blog 2008年04月09日 00時05分52秒 | #
高機能デバッグ・ツールXdebug

PHPの高機能デバッグ・ツールの使い方の紹介などを以下のサイトで行っています。...
Tracked on: ふかぶろ 2007年04月25日 13時22分57秒 | #
PHPのプロファイリング

PHPをより高速化するプロファイリングツールあれこれ。おお、これは仕事的にも使え...
Tracked on: りおてく 2007年04月24日 15時53分17秒 | #

引用元

更新:2009/12/02 16:11 カテゴリ: PHP  > 高速化 ▲トップ

No.1788 PHPのちょっとしたコツ

PHPのちょっとしたコツ

Keitaです。

個人的には、Pythonの思想を取り入れた JavaScript 1.7 がとても気になっているのですが、それは明日の Keita(個々一番さん)が説明してくれると思うので楽しみに待つことにしましょう☆
ウノウの社員は、スルー力も必要なようです。

さて、そんな世迷言はみなかったことにして、PHPの話題です。
PHPいいよ、PHP素敵だよ。

さて、今回は日ごろ気をつけているPHPのコーディングのコツをTIPS形式で書いていこうと思います。

しかし、はるか過去にいろいろな所で情報収集したので情報の出典を忘れてしまいました。
わかる限りはURLを記載していきますが、記載されてない所があったらすいません&コメントで補足いただけると助かります。

1. array_pushは遅い
いくつかのBlogで語られてることですが、array_pushは、次のような書き方のほうが早いそうです。

	//array_puth($array, 'arraydata');
	$array[] = 'arraydata';

PHPをいじってきた感想でいうと、全体的に組み込み系の関数の類を使うよりは、PHPの構文として定義されているものを利用するほうが早いことが多いです。

2. array_key_existsよりハッシュを使え
array_searchは、毎回全データを検索するので遅いです。
データに配列の順序が関係ないなら、連想配列 + issetを使うほうが高速です。
連想配列の場合ハッシュの仕組みが使われるのでその分高速です。
同様に、array_key_existsよりissetのほうがはるかに高速です。



    //$array[] = 'arraydata';

    //if (array_search('arraydata', $array)) {

    //    echo 'あるよ。';

    //}

$array['arraydata'] = 'arraydata';

if (isset($array['arraydata'])}

echo 'あるよ。';

}
 


上の2つの、array関係は、多数の値がある場合に結構変わってきます。

※情報が不正確でしたこちらの記事を参照ください


3. $_ほげほげは直接使わない
これは心得の問題です。
$_GETや、$_POSTなどの値は直接使わないようにしましょう。
特に$_SERVERには、外部から送られてくる値を直接格納している場合がありますのでこれを直接使うとひどい目にあいます。
一般的なフレームワークなら、これらをラッピングする関数などが準備されているハズですのでこれを使いましょう。

4. if文は「===」を使う
PHP勉強会で、Dinoのhnwさんに教わったことですが、'0.00' == '0'は真です。
もし、仮に、パスワード処理でデータ側でMD5などのハッシュ化してない場合に、上記が真になっては非常にまずいのではないでしょうか。
さらにいえば、もっといろいろな形で、真となる場合があるので「==」は使わず、「===」を使いましょう。

引用元

更新:2009/11/29 14:07 カテゴリ: PHP  > 高速化 ▲トップ

No.1777 PHP最適化tipsまとめサイト

PHP最適化tipsまとめサイト

こんにちは。親知らずを抜いて離乳食三昧のyukiです。GWの暴飲暴食から脱し、ダイエットするには好都合ですね。すいません。負け惜しみです。
さて、今回は「PHPのちょっとしたコツ」の続きネタで、PHP最適化Tipsまとめサイトの紹介です。
これらは既に有名なサイトで紹介されていたり、常識の範囲かもしれませんが、ひとつでも有用に感じていただければ幸いです。
そして英語が極端に苦手なため、意訳突っ込み等あれば宜しくお願い致します。

PHPの最適化 12 PHP Optimization tips

(元ネタはこちらでしょうか? http://www.ilia.ws/files/zend_performance.pdf)
  • staticが使えるなら、staticを使う。速度は4倍になる。
  • __get, __set, __autoload は避ける。
  • require_once() はコストがかかる。
  • include や require では絶対パスで指定する。
  • スクリプトの開始時間は $_SERVER[’REQUEST_TIME’] で得る。
  • 正規表現は、文字列関数で代用できないか探る。(文字を見つけるだけならstrposなどでもよい)
  • str_replace は preg_replace より早いが、strtr は str_replace の4倍早い。
  • 文字列/配列両方を受け入れる柔軟さを持つ関数は避ける。変わりに個別の関数を用意する。
  • @によるエラー制御は遅い
  • $row[’id’] は $row[id] より7倍早い
  • エラーメッセージはコストがかかる
  • for ($x=0; $x < count($array); $x) の count() のようにループの度に呼ばれる関数はさけ、変数に格納する。

また、次のサイトでは実際に色々試した結果が乗っています。

PHP Benchmark test


「echo VS print」「for VS while VS foreach」「ダブルクォート VS シングルクォート」など、素朴な疑問から始まり、実際に計測し結果を公表しています。

ここのサイトでも実証を行っています。
Optimizing PHP Through Habits

  • requireはrequire_once()より3-4倍遅い?
    空ファイルを forループで1万回呼んだ結果、4倍程度早かった。
  • __get, __set, __autoload は遅い?
    new Foo() と require_once('foo.php'); new Foo() で試した結果、__autoload() 3.7倍早かった。__getは差が見られなかった。

Optimizing PHP object

主にオブジェクトでのパフォーマンスが記述されています。

概要

  • すべての変数は最初に初期化すべき
  • メソッドで2回以上参照されるすべてのグローバル/オブジェクト変数はは、ローカル変数に格納したほうがよい。
  • よく使うメソッドは派生クラスに定義する。

詳細

  • メソッドでのローカル変数のインクリメントがもっとも早い。通常関数でのローカル変数のインクリメントもほぼ同じ。
  • グローバル変数のインクリメントはローカル変数のインクリメントより2倍遅い
  • オブジェクト変数のインクリメント($this->hoge++)よりローカル変数インクリメント($hoge++)の方が3倍早い
  • 未定義の変数のインクリメントよりも、初期化した変数のインクリメントの方が9-10倍早い
  • 宣言なしに使われるグローバル変数もローカル変数が増えるのと同じくらいコストがかかる(たぶんPHPはグローバル変数の存在を調べるため)
  • クラス内に10以上のメソッドがあってもパフォーマンスは変わらない
  • 派生クラスメソッドはスーパークラスメソッドより早い
  • 1つの引数と空の関数の呼び出しは、ローカル変数のインクリメント7-8回分のコスト。同じようなメソッドの呼び出しは 15回分のコストがかかる

このTipsはだいぶザックリしたレベルのチューニングですので、お試しになる際は鵜呑みにせずご自身の環境でテストしてみることをおすすめします。
また、もちろんすべてのコードを見直すとなれば非現実的なコストがかかることもあると思います。
必ずこうしなければならないわけではありませんし、「この程度なら…」という場合ももちろんあるかと思いますので、一概には言えません。
もしあなたのサイトのパフォーマンスに不満がある場合、一度見直してみるとか、新たにコードを記述する際にちょっとだけ気をつけてみるという程度で構わないでしょう。

引用元

更新:2009/11/29 11:18 カテゴリ: PHP  > 高速化 ▲トップ

No.1778 3.基礎構文処理速度のあれこれ

3. 基礎構文処理速度のあれこれ

なんとなく結果が分かってはいるけれど、基礎的なPHPの構文がどれだけ処理に時間がかかっているかを算出してみました。マシンスペックによって結果は異なってきますが、簡単なスクリプトを用意して速度を測ってみます。

まずは文字列の解析にどれだけ時間がかかっているかをチェックしてみました。ダブルクォーテーション内は変数が展開される為、その分のオーバーヘッドがかかると思います。

<?php
ini_set
('max_execution_time','100');
$loop_counter 1000000;

/**
 * クォーテーションチェック
 */
// PHP5からはmicrotime()に引数を渡すとfloatで返してくれるのです☆
$single_start_time microtime(true);
$single_check array();
for (
$i=1$i<=$loop_counter$i++) {
    
$single_check["abc"] = "PHPプロ!";
}
$single_end_time microtime(true);

$double_check array();
$double_start_time microtime(true);
for (
$i=1$i<=$loop_counter$i++) {
    
$double_check['abc'] = 'PHPプロ!';
}
$double_end_time microtime(true);

$single_loop_time $single_end_time $single_start_time;
$double_loop_time $double_end_time $double_start_time;

print 
$single_loop_time."<br>\n";
print 
$double_loop_time."<br>\n";
?>

多少の差はあるものの、大きなオーバーヘッドは発生しないようです。次にインクリメントの記述方法で速度が変わるかをチェックしてみました。パターンは

  • $i++
  • ++$i
  • $i = $i + 1
  • $i += 1

の4パターンです。

<?php
/**
 * インクリメントチェック
 */
$check1_start_time microtime(true);
for (
$i=1$i<=$loop_counter$i++){}
$check1_end_time microtime(true);

$check2_start_time microtime(true);
for (
$i=1$i<=$loop_counter; ++$i){}
$check2_end_time microtime(true);

$check3_start_time microtime(true);
for (
$i=1$i<=$loop_counter$i $i 1){}
$check3_end_time microtime(true);

$check4_start_time microtime(true);
for (
$i=1$i<=$loop_counter$i += 1){}
$check4_end_time microtime(true);


$check1_loop_time $check1_end_time $check1_start_time;
$check2_loop_time $check2_end_time $check2_start_time;
$check3_loop_time $check3_end_time $check3_start_time;
$check4_loop_time $check4_end_time $check4_start_time;

print 
$check1_loop_time."<br>\n";
print 
$check2_loop_time."<br>\n";
print 
$check3_loop_time."<br>\n";
print 
$check4_loop_time."<br>\n";
?>

どうやら前置加算子が一番早いようです。前置加算子・後置加算子の違いはこちら(http://www.phppro.jp/phpmanual/php/language.operators.increment.html)

最後にループの比較をしてみました。大きく分けて

  • for文
  • while文
  • do-while文
  • foreach文

の速度を比較しています。

一つのfor文をとってもいくつかの記述方法があります。

  • ループ範囲をブレス{}で囲う
  • 1行ループの{}ブレスを省く
  • ループ範囲を for(): endfor; で囲う

の比較をしてみました。また、foreach文とwhile(each())を使ったケースを比較しました。

<?php

/**
 * for文チェック
 */
$for1_start_time microtime(true);
for (
$i=1$i<=$loop_counter; ++$i) {$a=0;}
$for1_end_time microtime(true);

/**
 * for文チェック(記述別)
 */
$for2_start_time microtime(true);
for (
$i=1$i<=$loop_counter; ++$i)
$a=0;
$for2_end_time microtime(true);

/**
 * for文チェック(記述別)
 */
$for3_start_time microtime(true);
for (
$i=1$i<=$loop_counter; ++$i):
$a=0;
endfor;
$for3_end_time microtime(true);

/**
 * while文チェック
 */
$while_counter 1;
$while_start_time microtime(true);
while (
$while_counter <= $loop_counter) {
  
$a=0;
  ++
$while_counter;
}
$while_end_time microtime(true);

/**
 * do-while文チェック
 */
$dowhile_counter 1;
$dowhile_start_time microtime(true);
do {
  
$a=0;
  ++
$dowhile_counter;
} while (
$dowhile_counter $loop_counter);
$dowhile_end_time microtime(true);

// $loop_counter個の配列を作っておきます
$test_array array();
for (
$i=1$i<=$loop_counter$i++) {
  
$test_array[$i] = $i;
}

/**
 * while(each())文チェック
 */
$list_while_start_time microtime(true);
while (list(
$key$value) = each($test_array)) {$a=0;}
$list_while_end_time microtime(true);

/**
 * foreach文チェック
 */
$foreach1_start_time microtime(true);
foreach (
$test_array as $key => $value) {$a=0;}
$foreach1_end_time microtime(true);

/**
 * foreach文キーなしチェック
 */
$foreach2_start_time microtime(true);
foreach (
$test_array as $value) {$a=0;}
$foreach2_end_time microtime(true);


$for1_loop_time        $for1_end_time       $for1_start_time;
$for2_loop_time        $for2_end_time       $for2_start_time;
$for3_loop_time        $for3_end_time       $for3_start_time;
$while_loop_time       $while_end_time      $while_start_time;
$dowhile_loop_time     $dowhile_end_time    $dowhile_start_time;
$list_while_loop_time  $list_while_end_time $list_while_start_time;
$foreach1_loop_time    $foreach1_end_time    $foreach1_start_time;
$foreach2_loop_time    $foreach2_end_time    $foreach2_start_time;

// 通常for文を1とした時の速度率を出力しています。
$for1_rate       $for1_loop_time       $for1_loop_time;
$for2_rate       $for2_loop_time       $for1_loop_time;
$for3_rate       $for3_loop_time       $for1_loop_time;
$while_rate      $while_loop_time      $for1_loop_time;
$dowhile_rate    $dowhile_loop_time    $for1_loop_time;
$list_while_rate $list_while_loop_time $for1_loop_time;
$foreach1_rate   $foreach1_loop_time   $for1_loop_time;
$foreach2_rate   $foreach2_loop_time   $for1_loop_time;

print 
$for1_rate."<br>\n";
print 
$for2_rate."<br>\n";
print 
$for3_rate."<br>\n";
print 
$while_rate."<br>\n";
print 
$dowhile_rate."<br>\n";
print 
$list_while_rate."<br>\n";
print 
$foreach1_rate."<br>\n";
print 
$foreach2_rate."<br>\n";

?>

for文は記述方法で処理速度に大きな違いはほとんど見られないようです。違いがあったら面白かっただけに、残念です。

次にwhileとdo-whileの比較です。若干do-whileの方が早いようですがこれ位の差であれば、可読性を重視するなら見慣れた通常のwhile文を使うのがよさそう ですね。

最後にforeachとwhile(each()) の比較です。私は普段からforeachを使っており、遅いとの噂があったのでwhileに期待をしていたのですが、大差をつけてのforeach勝ちで した。また、foreachの要素キーを取得する$keyを省くとかなり1.1倍〜1.3倍程高速という結果になりました。ループ内で要素キーを使わない 場合は省いてしまったほうが良さそうです。

実行するマシンスペックや、ループコード内に不平等はありますが、処理速度を総合的に見るとwhile文が一番早いようです。

上記結果を踏まえて、コード規約を一度見直しては如何でしょうか?

引用元

更新:2009/11/27 08:20 カテゴリ: PHP  > 高速化 ▲トップ

No.1776 処理速度最適化法

処理速度最適化法

いろいろ纏めようと思っていたんですが、すでに分かりやすいサイトが沢山あります。
PHP最適化tipsまとめサイト
基礎構文処理速度のあれこれ

require VS require_once

実際に計測してみた所、試行回数が少なかったせいか、あまり差は見られませんでした。
(未読ファイルの読み込みに関して)
一度しか読まないのが分かっていればrequire_onceを使うメリットはないと思います。
速度は気にせず以下で使い分ければOK。

複数回読まれる可能性があるが、一度しか読む必要がない。require_once
それ以外。require

== VS ===

型を含めて比較する後者の方が若干速い。
パスワードなど外部データと比較する場合にはセキュリティーホールとなる可能性があるので===を常用した方が良い。

is_type() VS ===

PHP

  1. if (is_null($var)) {}
  2. if ($var === null) {}

後者が速い。

count($array) > 0 VS (bool)$array

配列に要素があるかどうかの判別。
後者が速い。

array_merge() VS +演算子

array_mergeは連結後に数字キーを振り直すので、連想配列の場合は+演算子を使った方が速い。

PHP

  1. $a = array('a' => 1, 'b' => 2);
  2. $b = array('a' => 3, 'c' => 4);
  3. // array_merge($a, $b) == $b + $a;

バージョン分岐

PHPのメジャーバージョンで分岐したい場合はversion_compare()を使うより各バージョン特有の定数を調べるのが良い。

PHP

  1. // PHP_VERSIONの一文字目を調べるより速い
  2. $isPHP5 = defined('E_STRICT');

is_file() VS file_exists()

file_exists()はディレクトリも含まれるので、ファイルの有無を調べたいだけならis_file()の方が高速。

文字列連結速度

PHP

  1. $str = $str1.$str2;
  2. $str = "$str1$str2";
  3. $str = "{$str1}{$str2}";

上から順に高速。

splitは使うな

文字列を分割して配列を作成する場合、splitは遅いので避ける。
正規表現分割は、 preg_split (PHP 3.0.9, 4, 5)
固定文字分割は、 explode (PHP 3, 4, 5)
分割して一部分だけ取得したい場合は、分割数を制限する3番目のlimit引数を付けておきます。 特にループ内で繰り返し使う場合、全分割するより時間を短縮できます。

PHP

  1. $str = 'id,date,name,msg,pwd';
  2. // limit引数:必要なデータ数 + 1
  3. $arr = explode(',', $str, 3);
  4. print_r($arr);
  5. // 出力結果 Array ([0] => 'id' [1] => 'date' [2] => 'name,msg,pwd')

time()を何度も呼ばない

何度も使う場合は定数にするなりして使い回す。(2回程度なら定数化しない方が速いかもしれないが。)PHP5では$_SERVER['REQUEST_TIME'];でも可能。

PHP

  1. define('REQUEST_TIME', time());

in_array()よりisset()

調べたい要素が複数ある、又は複数回調べたい、それが空文字以外の文字や整数(つまりキーになりうる)で重複していない(整数1と文字’1′は重複)事が確かならarray_flip()で反転させてキーで調べると速い。

PHP

  1. // 0と5はある?
  2. $list = array(5, 4, 3, 1, 2, 0);
  3. $list = array_filp($list);
  4. if (isset($list[0], $list[5])) {
  5.   print 'あった!';
  6. }

array_key_exists()よりisset()

配列の要素がnullの場合両者の挙動が異なります。
それでも影響がない場面ではisset()を使った方が速い。

大文字小文字変換

大文字変換 strtoupper();
小文字変換 strtolower();
速度は変換数に比例して遅くなる。

PHP

  1. $s = 'aaaaaAaaaaAaaaaaa';
  2. // 大文字が少ない分strtolower($s);よりstrtoupper($s);の方が時間がかかる。

まとめ

関数を使わずに済むならその方が高速。
正規表現を使わずに済むならその方が高速。
その他、同様の役割でも何かしらの判断基準が設けられている場合は、そちらの方が遅くなる傾向にあります。
また、計算式では誤差が生じたり可読性が落ちるのでキャストは使わずにintvalなどの変換関数を用いる。状況に応じて速度と手間と可読性のどれを重視するか判断しましょう。

引用元

更新:2009/11/27 08:19 カテゴリ: PHP  > 高速化 ▲トップ
10件中 1 〜 10 表示  1 

FuelPHP

Mac

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0