Raspberry Pi ZeroにAdafruit社製のADS1115 16-bit ADCつなげて、センサ値の読み取りしてる。読み取った値を配列に入れておいて、Matplotlibのpyplotでプロットしてるんだけど、何度も繰り返しているとRaspberry Piが応答しなくなる。これがpyplotのメモリリークというやつだろうか。。。調べ方とかよくわかんなくて、Raspberry PiのfreeコマンドやらWindowsのタスクマネージャーやらで確認したら、プロットする度にメモリの使用量が3~4 MBずつ増えていく。。。
解決方法を探したんだけど、以下のページで紹介されていたpyplot.figure.clear()で解決できた。pyplot.draw()とpyplot.figure.clear()の組合せでメモリリークが解消されるようだ。
Matplotlib でプロットの更新を自動化する方法、DelftStack
pyplot.figure.clear()とFigureCanvasTkAggのdraw()の組合せでもメモリリークを解消できた。
コメントを残す