iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
Software Development

莫名其妙就跟世界等級的 OpenSource 專案攪和了!?系列 第 20

EP 20 - 透過友商的好工具進行 Memory 監測

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。

透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?

總之,就當作的隨手雜記文吧!

本篇是 莫名其妙就跟世界等級的 OpenSource 專案攪和了!? 系列文的 EP20。


好了,看完 EP19 的介紹後,這不是很順利的能播放影片嗎?

是在無病呻吟什麼?

對,能用。

但不夠好。

Samples 裡面有 2 個專案都能播放影片:

  1. GstreamerPlayer (Avalonia UI)
  2. NetCore3ConsoleSample (.NET Console)

在這邊透過稍微改寫一下 GstreamerPlayer 的程式,達到不斷的重複播放同一個影片檔案測試效果。

另外,用 Jetbrain dotMemory 類似的記憶體監測工具:
Jetbrain dotMemory
(擷取自 Jetbrain dotMemory 啟動的 Splash 畫面)

監測執行該 GstreamerPlayer 的程式,很快地就會看到問題之所在。

放著監測 5 分鐘的執行:
dotMemory-Monitor-01

放著監測 30 多分鐘的執行:
dotMemory-Monitor-02

測試結果看來,執行的整體記憶體使用趨勢是相當明顯向上攀升的。

而如果是 UI 程式的記憶體有被占用無法被釋放完全並回收,雖到最差的情況也是允許重開 UI 程式,只要重開 UI 程式的過程銜接的好,通常使用的時候不太會有感覺。

但重開 UI 程式算是最後的手段了。

所以...

記憶體使用上升的速率能越趨緩,以便重開 UI 程式的間隔可以拉的越長。

PS 雖然還有最後大絕是 "重啟" 裝置,也就是俗稱的 重開治百病,但這屬於治標不治本之招就是...


上一篇
EP 19 - .NET 應用透過 GStreamer 播放影片
下一篇
EP 21 - 調整使用 GStreamer 的 MSVC ?或其他?
系列文
莫名其妙就跟世界等級的 OpenSource 專案攪和了!?30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言