変数名を宣言すると、その名前の長さはアプリケーションの合計メモリにどのくらいの影響を与えますか?とにかく最大の長さはありますか?あるいは、私たちの変数(およびインスタンス)について、私たちが望むだけ自由に手がけていますか?変数の名前付けは、アプリケーションのメモリ使用量にどのような影響を与えますか?
答えて
実際には言語によって異なります。
C++またはCを使用している場合は、影響はありません。
インタプリタ言語を使用している場合は、ソースコードを渡しているため、劇的な影響があります。
Javaや.NET言語などの中間言語にコンパイルされたコンパイル言語を使用している場合、通常、変数名、クラス名、メソッド名などはすべてILの一部です。より長いメソッド名を持つことは影響を与えます。しかし、あとでobfuscatorを実行すると、obfuscatorがすべての名前を(通常は)非常に短い名前に変更するため、これはなくなります。これは、難読化がパフォーマンスの影響を与えることが多い理由です。
しかし、私は、長い記述変数/メソッド/クラス名の使用を強く勧めます。これにより、コードを理解しやすく、保守しやすく、読みやすいものにしてくれます。長期的には、わずかなパフォーマンスをはるかに上回ります。利益。
ILを考慮するために+1 –
ILは無視するにはあまりにも重要です。 Java、C#、VB.Netはあなたが考えているものですが、Pythonでさえも解釈されません。それはILの独自の形式です... –
名前はILの一部ですが、.NETでは少なくともILは機械語にJITされているので、変数名もありません。 –
コンパイルされた言語には影響しません。
コンパイルされた言語では、ほとんど確かにそうではありません。すべてがシンボルテーブルのシンボルになります。解釈された言語では、答えはノーで、いくつかの非常にまれな例外があります(Pythonの古いバージョンでは、違いがあります)。
MSVC++は変数名を255文字に切り捨てます。変数名の長さは、コンパイルされたコードサイズに影響を与えません。
他で述べたように、変数名はコンパイルされた言語では消えます。私は.Netのローカル変数名が破棄されるかもしれないと信じています。しかし、一般に言えば、解釈された言語であっても、変数名のメモリ消費量は無視できます。
実際、ASP.NETでは、コントロールやマスターページの長い変数名は、生成されるHTMLのサイズに追加されます。これにより、出力ストリームをバッファリングするために余分なメモリが追加されますが、ネットワーク経由での送信では数百バイトの余分なデータが必要になります。
Pythonでは、名前はいくつかの単純なテーブルに集められているようです。各名前は各コードオブジェクトに一度だけ表示されます。名前はパフォーマンスに影響を与えません。
統計的な理由から、私はProject Euler問題15の解決策であった20行の関数を調べました。この関数は292バイトのコードオブジェクトを作成しました。これは、名前テーブルに7つの異なる名前を使用しました。バイトコードファイルのサイズを2倍にするには、41文字の変数名を使用する必要があります。
これは唯一の影響です。モジュールの読み込み時間が遅くなる可能性があります。
- 1. requireステートメントはメモリ使用量とパフォーマンスにどのような影響を与えますか
- 2. オペコードキャッシュがメモリ使用量に与える影響
- 3. Javaのメモリ使用量に影響を与えるLinux構成ですか?
- 4. スパース行列はどのようにメモリ使用量に影響しますか?
- 5. mavenはJava Webアプリケーションにどのような影響を与えますか?
- 6. void関数(void)はパフォーマンスにどのような影響を与えますか?
- 7. IPV6の変更は、既存のWebアプリケーションにどのような影響を与えますか?
- 8. デバッガはiPhoneのパフォーマンスにどのような影響を与えますか?
- 9. この行はシェルスクリプトにどのような影響を与えますか?
- 10. 未使用のJavascriptオブジェクトメソッドはどのようにメモリ使用量に影響しますか?
- 11. オブジェクトのプロパティ名の長さがメモリ使用量に影響しますか?
- 12. HOLDLOCKはUPDLOCKにどのような影響を与えますか?
- 13. SQLトランザクションレプリケーションは、トランザクションログファイルにどのような影響を与えますか
- 14. .htaccessリダイレクトはGoogleボットにどのような影響を与えますか?
- 15. カテゴリにはどのようなメモリ使用率が影響しますか?
- 16. 複数の状態コンポーネントが反応するアプリケーションにどのような影響を与えますか?
- 17. DataFrame.loc()はデータフレームにどのような影響を与えましたか?
- 18. 一貫性のないレイテンシは、TCPアプリケーションにどのような影響を与えますか?
- 19. 画像ヒストグラムにガウスノイズがどのような影響を与えますか?
- 20. grailsの一時的なプロパティはアプリケーションのメモリ使用に影響しますか?
- 21. アンドロイドでRunnableを複数回使用し、メモリに与える影響
- 22. メソッド名に影響を与えるコードの変更。
- 23. 末尾の数字はawkスクリプトの本文にどのような影響を与えますか?
- 24. CSSのスケール変換はドキュメントフローにどのような影響を与えますか?
- 25. カードに影響を与えたレイアウトにどのような要素を使用するのですか
- 26. デジタル署名に影響を与えないように、署名付き実行可能ファイル/ MSIファイルのどの部分を変更できますか?
- 27. オーバーフローはどのような影響を与えますか?このコードには隠しがありますか?
- 28. 変数にはどのように名前を付けますか?
- 29. __import __()関数は、コンパイル時にPythonプログラムにどのような影響を与えますか?
- 30. XAMLの名前付けオブジェクトは何にも影響しますか?
+1 - 私はこれを尋ねようとしていました。 – mauris