簡體   English   中英

cv:Mat具有高分辨率(例如1920x1080x3)的queue.push()和queue.pop()有多重

[英]how heavy is queue.push() and queue.pop() for cv:Mat with large resolution(say 1920x1080x3)

我有兩個線程,一個是spsc_queue.push(),一個是spsc_queue.pop(),spsc_queue是boost :: lockfree的函數。 我將需要不斷推送和彈出一個大型cv :: Mat(分辨率為1920x1080x3的圖像),在這種情況下,推送和彈出的耗時和資源負載如何?

如果太重,我可能會考慮從外部分配內存,僅將指針推入並彈出圖像內存。 如果不重,我將直接直接推/彈出cv :: Mat。

盡管它不像簡單的指針那樣輕巧,但它並不直接包含圖像數據,您可能會擔心。 它包含一個指向圖像數據的指針。

墊子參考

編輯:假設您將Mat推入隊列(而不是指向Mat的指針),該Mat將被復制並保存在隊列中。 話雖如此,對智能指針的引用將安全地保留在隊列中。 圖像數據將繼續存在於內存中,直到將Mat從隊列中彈出,使用和銷毀為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM