- ベストアンサー
シングルクォートについて
プログラム初心者です 貧弱レンタルサーバーを使っています。メモリを節約したいのですがダブルクォーテーションからシングルクォーテーションに変更したいです。 シングルクォーテーションを使って値を受け取ると何か制約うけることはありますか? ※postなどは配列で受け取ることもあります $_COOKIE['id'] $_POST['sure_id'] $_REQUEST['page'] $_SESSION['id'] よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
「ダブルクオートよりもシングルクオートの方が速い」と言い張る人がちらほら居ますが、全くの事実無根です。全ては変数展開の回数で決まりますし、「シングルクオートリテラルを文字列結合演算子で結合する」よりも「ダブルクオートリテラル内で変数展開する」ほうがごく僅かですがパフォーマンスもよくなります。 Disproving the Single Quotes Performance Myth http://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html で・・・「何が貧弱」なのかがはっきり分かっていないとだめで・・・おそらく【メモリ不足】ではなく【CPUスペック不足】なんじゃないですかね。そういった場合には、例えば(極端にサイズの大きい配列や画像リソースなどを除き)「unset() で変数をその都度解放していく」などやってしまうと全くの逆効果です。メモリが枯渇しているのでもなければ単なるオーバーヘッド増加につながるだけです。 実行コードキャッシュは結構効果ありそうなので試してみてください。といっても、共用レンタルサーバーであれば導入が厳しいと思いますが… PHP のパフォーマンスチューニング http://www.goofoo.jp/2012/01/1768 PHPコード最適化Tipsのウソと本当(解説) http://d.hatena.ne.jp/koto2/20080524/1211684383 ↑こっちには若干疑わしい事柄も混じってますのでご注意を。 >> 03. echo '文','字'; (カンマ区切り)の方が、'文'.'字' (ドット連結)より速い。 友人が以前気になって検証していましたが、その時のベンチマーク順は echo "${foo}${bar}"; echo "{$foo}{$bar}"; echo "$foo$bar"; echo $foo . $bar; echo $foo, $bar; のようにむしろ一番遅い結果となっていました。output_bufferingの設定が関係している可能性もありますが、いずれにせよ気にするような箇所ではないと思います。最初に決めたコーディング規約に従うべきです。 >> 16. 処理が終わったらデータベースの接続は切っておこう。 "処理" の後に続くHTMLレンダリングのコストが少ない場合、これを行ってもそれほど効果は期待できません。 >> 11. strtr(str_replace の4倍速い) > str_replace > preg_replace の順に速い。 strtrは2つの使い方がありますが、どちらを使うかによって大きくパフォーマンスが変動する関数です。具体的には strtr(引数を3つ取る使い方) > str_replace > strtr(引数を2つ取る使い方) > preg_replace のようになるでしょう。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
> メモリを節約したいのですがダブルクォーテーションからシングルクォーテーションに変更したいです 目的に対して、手段があってません。 ダブルからシングルにしても、変化しないか、せいぜい誤差の範囲です。 いくら貧弱サーバーでも、この程度では効果は期待できません。
お礼
体感できるものではないんですね 回答ありがとうございました
お礼
回答ありがとうございます そうだったんですか。あまり効果なさそうですね 文字列結合は参考になりました。気をつけます