ジェネレーターを使用した場合と使用しない場合のメモリ使用量を視覚化すると、効率の利点を理解するのに役立ちます。以下は 2 つのシナリオでのメモリ使用量の比較です:
0 から 999,999 までの数値の配列を返す単純な関数があるとします。この関数は、すべてのデータを一度にメモリにロードします。
関数 getNumbersArray が呼び出されたとき:
| Memory Usage Without Generators | |------------------------------------------------------| | Start | * | | | ** | | | *** | | | **** | | | ***** | | | ****** | | | ******* | | ... | ******************************************| | End | ******************************************| |------------------------------------------------------|
次に、ジェネレーター関数を使用して、一度に 1 つずつ数値を生成します。
ジェネレータ関数numberGeneratorが呼び出されたとき:
| Memory Usage With Generators | |------------------------------------------------------| | Start | * | | | * | | | * | | | * | | | * | | | * | | | * | | ... | * | | End | * | |------------------------------------------------------|
ジェネレーターは、一度に 1 つのアイテムを生成し、スクリプトの実行全体を通じてメモリ使用量を低く維持することにより、特に大規模なデータセットでメモリ効率に大きなメリットをもたらします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3