Pythonに問題があり、メモリの問題のデバッグを開始する場所が不明です。回答からの提案を使用して、私はコードの変更を行い、以前にあった行についてコメントしました。Python - memory issue
答えて
メモリに入りきらないようになるまで、results
を構築し続けます。
最も簡単で最も直ちに解決できるのは、すべての結果の完全なリストではなく、getORMClaims()
をジェネレータにして、一度に1つの結果しか得られないことです。 results
を取り除き、何かを追加するたびにyield
何かがその代わりになる。
あなたの場合、results.append(labels)
をyield labels
に置き換えます。 results.append(result)
をyield result
に置き換えてください。
getORMClaims()
のメモリ使用の問題を取り除くのは難しくありませんが、リストの代わりに一度に1つの「行」を処理できるように、それを呼び出すものを変更する必要がありますすべての行のループはすでにただ一度に1行を使用しているため
はたとえば、呼び出し元のコードは、
for row in foo.getORMClaims():
writer.writerow(row)
その後、あなたは問題ないはずのようになります。それは、より多くのような
reportData = foo.getORMClaims()
に見える場合しかし、あなたはreportData
を取り除くためにどのように把握する必要があり、ちょうど直接ループにgetORMClaims()
の出力を消費します。
あなたがyield
や用語の前発電のことを聞いたことがない場合、これは少し混乱することができ、そしてあなただけの気合いとそれらについて読む必要があります。 1つのリソースは、質問"What does the yield keyword do in Python?"に対してthis comprehensive Stack Overflow answerです。
あなたの答えによると、呼び出しプログラムにはforループがあるので、私がする必要があるのは 'yield 'に置き換えられることだけです。私が間違っていれば私を修正してください。 – user3224907
いいえ、 'for'ループで' getORMClaims() '* *を直接使用する必要があります。あなたのコードは結果を変数に代入します。私の 'reportData = foo.getORMClaims()'の例のように、 'reportData = foo.getORMClaims()'のような呼び出しコードは 'foo'ではなく' reportData'ではなく 'ocs'を持っています。 –
result
が大きくなりすぎています。 Pythonはそれに追加するのに十分なメモリを割り当てることができません。
これ以上のことは、ソースコードとあなたが達成しようとしていることの説明なしでは言い表せません。
私はソースコードを追加しました。 – user3224907
- 1. file_get_contents memory issue
- 2. Delphi Memory Issue(FastMM4)
- 3. Wildfly 8 CPU、Memory issue
- 4. Python Memory Input
- 5. Python Map Lamba Memory
- 6. Python Spark/Yarn memory usage
- 7. Chrome webdriver selenium memory error-python 3
- 8. Python Pickle Memoryの問題
- 9. Python grequests issue
- 10. Python - Looping Issue
- 11. Python fileConfig issue
- 12. Python Napier Calculator Issue
- 13. Python 3:Byte issue
- 14. Python 3.4 graphviz issue
- 15. Python Email Parsing Issue
- 16. VerQueryValueW issue python 3
- 17. Python NameError issue
- 18. Python raw socket receive issue
- 19. Python Threading Issue on Windows
- 20. python facebook-sdk fan_count issue
- 21. encode issue python word document
- 22. Python - decode( 'utf-8')issue
- 23. ESPN.com Python web scraping issue
- 24. Luakit memory consuming
- 25. Python dict issue iteratingのとき
- 26. PyGame - Draw in Memory
- 27. Memory Sanitizer
- 28. Javascript Memory
- 29. Eclipse Memory Analyzer:java.lang.OutOfMemoryError:Javaヒープスペース
- 30. ElasticSearch Out Of Memory
「ORMClaimReport.py」のコードはどこですか? –
'getORMClaims()'の出力はどうしますか? –