c make shared 比 raw 指標更快?

時間 2021-05-31 06:39:41

1樓:

我測試的結果和題主不一樣:

1)測試結果Coliru Viewer

g++ -std=c++17 -O2 -Wall -pedantic -pthread main.cpp && ./a.out

c1:0.553860

c1:1.076324

c1:0.707973

make_shared最快,std::shared_ptr ps(new T)最慢。

2)點這裡看彙編:https://

godbolt.org/g/AudwzZ

std::shared_ptr ps(new T)比 T *p = new T多呼叫乙個函式

call std::_Sp_counted_ptr::_M_dispose()

make_shared直接被編譯器優化掉了

2樓:陳碩

因為做的事情不一樣。

raw 只分配不釋放,malloc 要跟作業系統要很多記憶體。

shared 分配了馬上釋放,等於你跟 malloc 打桌球,一小塊記憶體在你們兩個之間來來回回傳來傳去。

你在 raw 裡加上 delete 就扯平了。

RAW為什麼強於jpeg?

商皛 否認上邊的所有回答,根本原因在於JPEG是1張彩色圖,而RAW一般是4張灰階 根據感測器色彩矩陣不同而不同,如果是單色感測器則只有1張灰階 1個外部設定引數,所以JPEG和RAW理論上完全不等價,JPEG是RAW按照某個特定演算法5合1的結果,其損失的資訊量有多大不需要再強調了。 王燈輝 RA...

Snapseed支援真正意義上的Raw處理嗎?

海的那邊 這個軟體我倒是經常在用,不過還真的沒有去注意raw和jpg在ss上的後期寬容度區別區別。不過原理永遠都是相通的,後期寬容度實際上和兩個東西相關,乙個是格式,乙個是感光器。對於raw,理論上,可以獲得比jpg更大的後期調整空間。實際上用raw格式拍照就是為了這個。但我為什麼要加上理論上這三個...

單鏡反光機用 RAW 格式拍攝有什麼好處?

從此以後 專業理論一大堆了,我說點人話能聽懂的 其他格式,比如JPG,出的片就是一張影象,就像是一張畫了畫的白紙,然後你可以後期 PS 加點顏色,靠高超的技術弄出層次感來,但是可以發揮的空間其實已經別限制了 而RAW就像是相機把那一塊景物原樣複製了下來,而且還是立體的,這中間包括了三維空間的長寬高光...