17

Pythonのような言語で変数名を短くすることで、メモリとスピードの面で得られるものはありますか?

もしそうなら、どのような状況を考慮するのが合理的でしょうか?

ノート

私は決して短い変数名を主張しているわけではありません。疑問に思っているだけです。質問を(再)読んでください。

注 2 説明的な変数名の値は理解しています。短い名前よりもわかりやすい名前を好むように十分なコードを調べ、その価値を理解しました。単純な No は実際には役に立ちません。

4

6 に答える 6

23

いやいやいやいやいや。

いいえ。

短い名前ではなく、読みやすい名前を使用してください。パフォーマンスの違いはまったく無視できます。


$ python -m timeit "i = 5" "i *= i"
10000000 loops, best of 3: 0.0938 usec per loop

$ python -m timeit "is_there_anything_to_be_gained_from_short_variable_names = 5" "is_there_anything_to_be_gained_from_short_variable_names *= is_there_anything_to_be_gained_from_short_variable_names"
10000000 loops, best of 3: 0.0927 usec per loop

皮肉なことに、この PC で測定すると、長い変数名は実行ごとに約 0.001 マイクロ秒速く測定されました。

于 2012-08-24T09:23:49.563 に答える
15

すべてのインタープリター言語が同じではないため、「like python」には問題があります。

純粋に解釈された言語では、事前コンパイルのステップがある Python のような言語よりも大きな影響があります。厳密には、これは言語の違いではありません (プリコンパイルする Javascript エンジンとプリコンパイルしない Javascript エンジンが存在する可能性があります) が、この質問への回答に影響します。

すべてのインタープリター言語を含めるために「python のように」拡張すると、答えは「はい、一部の言語については、少なくとも一部の場合は」と言えます。次の質問は「どれくらい」です。

1997 年から 1998 年初頭にかけて、私は Netscape Navigator 4 と Internet Explorer 4 の新機能のいくつかを利用するかなり複雑な JavaScript コードに取り組んでいました。これは、ダイヤルアップが普及した当時としては巨大な JavaScript ファイルでした。サイトの速度に関しては、すべてのキロバイトがカウントされることを意味しました。

このため、ミニマイザー スクリプトを使用しました。これが行った主なことは、変数を短く書き直すことでした(lastHeightbecmes auserSelbecmomesbなど)。

ダウンロード時間が短縮されただけでなく、重い機能の 1 つが大幅に高速化されました。しかし、あなたが一日中、他に何も見ずに過ごした人である場合にのみ、それはかなりの価値があります.

そうです、解釈に関する限り Javascript を「python のような」カテゴリに入れると、次の条件の下で違いが生じる可能性があります。

  1. Pentium、Pentium Pro、および 486s で動作していました (Pentium II は当時出ていましたが、まだありませんでした)。プロジェクトの途中で新しいマシンを手に入れたので、133MHz から 166MHz になりました。
  2. これは厄介なループのかなり大きな部分でした (スクリプトのほとんどに大きな違いはありませんでした)。
  3. 15 年前からスクリプト エンジンで実行されていましたが、それ以降、スクリプト エンジンのパフォーマンスは向上していません。

そして、それでもそれほど大きな違いはありませんでした。

そのため、他のいくつかのインタープリター言語も同様にわずかな程度で影響を受けると想定できます。

とはいえ、1997 年になっても、たまたま別の利点が得られなかったとしたら、気にすることはなかったでしょう。

于 2012-08-24T09:56:19.597 に答える
3

「Pythonのような言語」という発言で解釈された言語を意味する場合、解析には多少時間がかかる可能性があるため、違いがあります。違いは私が言うほど目立たない。

私はナイトクラッカーに完全に同意します。しないでください。人間がコードを読めるようにします。パーサー/コンパイラーがマシンの可読性を処理できるようにします。

最適化に関するルールを覚えておいてください。

  1. やらないでください。
  2. (専門家のみ) まだ実行しないでください。
于 2012-08-24T09:24:01.283 に答える
2

短い変数名、短いループのインデックスと、変数の有効期間が短い場合にのみ使用する必要があります。

それ以外の場合はわかりやすい名前を使用しますが、やりすぎないでください。ハンガリアン記法は使用しないでください。

于 2012-08-24T09:25:49.200 に答える
1

Pretty much none. Admittedly it might slow down finding the variable name the first time when python is precompiling your script. However, the time expended as a result of the confusion that results from short variable names generally far exceeds the amount of time saved in the execution of the script.

于 2012-08-24T09:26:26.820 に答える