blog元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。Javaとか組込とかできます。2019-11-21pypyで高速化したらメモリリークしたお話Pythonクラスを関数内で定義すると、pypyでの実行時にメモリリークが発生して実行速度が遅くなる。以下のコードをPythonで実行する。print(time.time()-s)Pythonなら結果はSafeでもLeakでも変わらない。pypybench.pySafe:0.18910288810729980.19314551353454590.18757462501525880.186571836471557620.19033050537109375Leak:0.180325508117675780.181997537612915040.17953419685363770.17793321609497070.18030810356140137Pypyで実行。pypybench.pySafe:0.00413537025451660160.0024583339691162110.00133466720581054690.00104713439941406250.0009150505065917969Leak:0.119743824005126950.20236182212829590.307520866394042971.09946179389953611.716996431350708だんだん遅くなる。インスタンスをdelしても遅くなるので、クラス定義がクリーンアップされずに溜まっているご様子。解決策としては、関数内でクラスを定義しないこと。最新記事いまさらJavaのTimerの挙動を調べる。sqlite3でROW_NUMBER()が使えるらしい。(2)月別アーカイブはてなブログをはじめよう!nyatlaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。