teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

質問が変わった

2017/08/04 04:25

投稿

Tak1016
Tak1016

スコア1408

answer CHANGED
@@ -1,3 +1,33 @@
1
+ ### 実行されない実行分岐のコード量におけるパフォーマンスの違い
2
+
3
+ 質問内容が変わったので、見解を書きます。
4
+
5
+ PHPとJavascriptどちらもそうですが
6
+ スクリプト言語は実行時コンパイルされます。
7
+ ということは
8
+ ファイルを読み込み、字句解析をし、正しいPHPコードだと判断後機械語に翻訳され、実行されます。
9
+
10
+ 極端な例を考えると分かりやすいです。
11
+ ファイルサイズ1KBのソースコードとファイルサイズ100MBのソースコードを比べた場合、
12
+ どちらが読み込み速度は速いでしょうか。
13
+ また、どちらがコンパイルビルドにかかる時間が長いでしょうか。
14
+
15
+ 100MBですよね。
16
+
17
+ つまり、if else でelseが実行されないから読み込まれないのではなく、ファイル全体を読み込んでコンパイルした内容をメモリに保持しているので、ifを実行しようがelseを実行しようがメモリ内のプログラムを実行するだけです。
18
+ 読込み速度は変わりません。
19
+
20
+ もちろんifの内容を実行するのに10秒かかる重たい処理が書かれていて
21
+ elseの内容は0.1秒で終わる処理が書かれていれば実行時間が軽いのはelseのほうです。
22
+
23
+ まとめると
24
+
25
+ - 実行時コンパイルにかかるDisk Readおよび字句解析、ビルドはコード量とファイルサイズに影響します。
26
+ - ビルドされたコードの分岐はそれぞれのプログラムの内容によって実行速度は変わります。
27
+
28
+
29
+ ###以下 旧回答
30
+
1
31
  パフォーマンスを常に意識しているということはとても素晴らしいことだと思います。
2
32
 
3
33
  インラインにて見解を書いていきますね。