web-dev-qa-db-ja.com

変数名はWebサイトのパフォーマンスに影響しますか?

変数名はWebサイトのパフォーマンスに影響しますか?これは非常に少ない数になることはわかっていますが、パフォーマンスの面で長い変数名を選択しない理由を提供できる人はいますか?

10
Avinash

パフォーマンスの面で長い変数名を選択しない理由を提供できる人はいますか?

マイケルは答え(つまり、いいえ)をカバーしましたが、変数名はプログラマーのパフォーマンスに影響します。新しい開発者やコードに不慣れな人を招いた場合、変数名が長くて混乱していると混乱を招き、理解プロセスが遅くなる可能性があります。

一般に、読みやすくするため、短くてわかりやすい変数名を使用します。 10年間コードを無視して、すべてをもう一度理解する必要がある場合を想像してみてください。 「getInput」または「getInputFromUserWhoInputsStringOrElseInformReaderOfError」を読みますか? (もちろん誇張:P)

ただし、名前が少し長い方が有利な場合もあります。たとえば、getBirthdayInput()は、getInput()よりもはるかにわかりやすくなります。あなたはある程度まで単純化したいのですが、単純化しすぎても問題が生じる可能性があります。

17
BlackJack

いいえ、それはしません。一般的に言って、コードがコンパイルされると、変数名はそれらが参照するメモリアドレスに置き換えられます。コンピューターは変数名について何も知りません。値が格納されている場所を知りたいだけです。

変数はシンボルであり、それ以上のものではありません。 16進値を名前に置き換えるため、プログラマーは自分が何をしているのか理解しやすくなります。したがって、短い変数名を選択してもパフォーマンスは向上しません。

とは言っても、コンパイル時間とJITの最初の解釈がわずかに(そして微視的に)向上する可能性がありますが、それは、パーサーが変数名を読み取るためにCPUサイクルを少ししか取らないためです。これは1回限りのコストであり、パフォーマンスを心配する場合は統計的に重要ではありません。

16
Michael K

op-code cache (「PHPアクセラレータ」とも呼ばれます)を使用している場合を除き、実際に影響があります。しかし、その影響は非常に小さいため、無視することができます。オペコードキャッシュを使用する場合、影響はありません。

8
vartec

Michaelはアプリケーションプログラミングに適していますが、質問はインタプリタ言語であるPHPを使用したWeb開発に関するものです。そのような場合、コードはファイルから読み込まれ、解釈される必要があります。この場合、変数名が長いほど、ロードと解析に時間がかかります。

ただし、そうすることによるパフォーマンスへの影響はわずかであり、スクリプト全体で数ミリ秒の領域になる可能性があります。あなたはいつでもサンプルスクリプトでそれを試し、 http://www.developerfusion.com/code/2058/determine-execution-time-で詳述されているようなタイミングメソッドを使用することができますin-php / しかし、これはおそらくファイルが読み込まれるまでタイミングを開始しません。さらに、再試行間の実行時間は、変数名の長さの違いよりもはるかに異なるため、リモートで意味のある平均を得る前に、かなりの回数の再試行を実行し、それぞれの平均を取る必要があります。

BlackJackが指摘するように、長い名前は理解するのがはるかに難しくなる可能性があり、入力するのに多くの余分な労力を必要とします(そして、タイプミスがはるかに発生しやすくなります)。わずかなパフォーマンス向上があるかもしれませんが、これはプログラマーのために作成された余分な面倒を正当化しません。そのため、短く、簡潔で、理解しやすい変数名が推奨されます。

要するに、可変長の名前について心配する必要はありません。代わりに、簡潔で意味のあるコードを書くことに集中してください。

3
Gavin Coates

はい、そうですが、あなたが考えているという意味ではありません。

不正な変数名を使用すると、開発者はソースコードで混乱しやすくなります。読みにくく、理解しにくいでしょう。

結局のところ、ソースコードは維持するのが難しく、進化させることはほぼ不可能です。これは必然的に、より高いメンテナンスコスト、より高い開発コスト、より多くのバグ、およびパフォーマンスの低下につながります。

変数名は実行時にはまったく影響がなく、コンパイル時にはまったく無視されます。しかし、悪い名前は必然的に悪いパフォーマンスにつながります。なぜなら誰もコードを理解しておらず、それが次々とハックのスタックになってしまい、毎回事態が悪化するからです。

良い変数名について知るためにこれらを読んでください: http://tottinge.blogsome.com/meaningfulnames

非常に長い変数名の必要性を感じた場合は、コードのアーキテクチャが不十分であることを意味しています。変数名は常に、名前空間、クラス名、ファイル名、フォルダー、関数名などのコンテキストで表されます。したがって、名前を明示的に長くする必要がある場合、これは、名前を付けようとしていることここにありません。この場合、このコードを適切な場所に配置することを検討するか、まだ存在しない場合はその場所を作成してください。

1
deadalnix

たぶん

サーバーコードは通常コンパイルされ、変数名の長さは前述の理由により影響を受けません。ただし、変数名を使用してマークアップを作成すると、さまざまな文字列操作が発生します。 HTTP応答(マークアップ/返されたjson /返されたデータを含む)の方が大きいため、差異は無視できますが、わずかに長くかかります。 JavaScriptが縮小されていない場合、ファイルが大きくなり、クライアントへの移動に時間がかかります。

JavaScriptファイルを縮小する以外に、Webアプリケーション/ Webサイトの最適化の取り組みは、他の側面に費やされます。

1
StuperUser

Phpに関しては、答えは明らかにイエスです。

それが違いをもたらさないと言う答えは必ずしも正しいとは限りません。たとえば、数行しかない小さなphpスクリプトがありますが、ジョブが完了するまでに約1,950,000回ループする必要があるため、スクリプトの1回の実行には気づかない場合がありますが、これらの1秒の断片は、何度もループします。

0
Diorthotis

コードを読みにくくする短い名前を使用できます。マイクロ秒か2秒節約できます。ただし、コードの可読性が低いため、コードを改善して高速化することは困難です。したがって、短い名前の保守不能で改善できないコードは、最終的に実行速度が大幅に遅くなります。

ですから、あなたの質問に答えるには(「パフォーマンスに影響を与えますか」):はい。

0
gnasher729