iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0

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
下一篇
EP 21
系列文
莫名其妙就跟世界等級的 OpenSource 專案攪和了!?21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言