###前提
いつもお世話になっております。
qtbindingsを利用してデスクトップマスコットを制作しています。
Timerで画像を変更できるようにしたのですが、画像が変わるにつれて
メモリの使用量が増えていきます。
Rubyに関わらず一般的にQtで画像を切り替える機会が多い
場合は何を利用するのが良いのでしょうか。
###発生している問題・エラーメッセージ
メモリの使用量がどんどん増えていく。
###該当のソースコード
画像を表示させる部分
Ruby
1 def showImage() 2 source = @@files[@@filescount] 3 if @@mirrorcount == 1 4 source = source.mirrored(true, false) 5 end 6 image = Qt::Pixmap::fromImage(source.scaled(source.width * @@scale_x, source.height * @@scale_x, 7 Qt::KeepAspectRatio, Qt::SmoothTransformation)) 8 @label.setPixmap(image) 9 end
###補足情報
Timerを動かしてもshowImage()を使わなければメモリの使用量が増えないので
showImage()に原因があるのではと私は考えています。
コード全体は長いのでこちらにおいています。
拡張子がrbだと警告が出るようだったのでtxtにしました。
バージョンなど
Ruby 2.2.6 32bit(Windows版)
qtbindings 4.8.6.3
#追記
Rubyでのメモリ使用量調査こちらのページを参考にしてshowImageに
GC.startとp ObjectSpace.memsize_of_allを書き加えました。
表示された数字はそれほど大きく増えていませんでした。
タスクマネージャに表示されるRuby interpreterのメモリの数字は3MBずつくらい
増加していきました。
あなたの回答
tips
プレビュー