物件的粒度和軟體的效能一定成反比嗎,如何優化甚至逆轉?

時間 2021-06-03 03:59:27

1樓:喬捷

物件導向對於渲染器來說沒什麼作用,只會限制自己的思路,渲染器需要的是面向資料的流水線設計,有了流水線才能對演算法進行並行和SIMD優化

2樓:XZiar

要效能不該面向資料程式設計嗎?

OOP本來就不是為了解決效能問題,甚至有些時候犧牲效能做了妥協。

物件導向的乙個問題就是,正因為抽象化出了很多東西的共同點,很多時候不得不去執行它們---哪怕它們並沒有被執行的必要。

當然啦,每次說到效能還是離不開profile,空想是沒用的。要是你一直在用debug模式就更別說了。

一般來說函式呼叫雖然有開銷,但計算密集型程式大部分時間應該是花在計算上了。如果你寫了個矩陣運算庫,結果每次加減乘除都是呼叫函式(沒有被內聯),那倒是真的會造成效能災難。

3樓:Kouei

你確定效能瓶頸出在「物件導向」上?

C++如果運用良好的話,可以接近zero-cost abstraction

樓上空明流轉大大說的對,先profiling一下找到效能熱點再說

4樓:叛逆者

軟體光柵器為什麼會需要這些:

World

Camera

Camera::ViewRay

Camera::Viewport

Position : Vector

Vertex : Vector

Visible

Polygon : Visible

Plane: Visible

Sphere : Visible

Plyhydron : Visible

Cube : Visible

另外,SOA(Struct of Array)和AOS(Array of Struct)之間也經常會造成極其巨大的效能區別。重點查查這個吧。你寫成物件導向的,很有可能就用了AOS。

5樓:

假如你的實現沒有很明顯的寫法問題,一般效能瓶頸在快取命中和非內聯函式呼叫上,因為可能你乙個類就是乙個cpp實現,先開啟link time optimization看看?

經驗告訴我,能發展成為好朋友的就一定不要成男朋友?

陳小柔 其實基本上能成為朋友,就能發展為戀人,但是很多時候,朋友的長情陪伴會讓你捨不得冒險,就個人而言,我永遠不會禍禍我的好朋友太熟了,不好意思下手 味微草堂 其實,我覺著要分階段吧。如果是還在求學階段的話,那可能是女生對這個男生沒有來電的感覺,但是覺著做小夥伴會比較開心。因為如果是情侶關係的話,女...

如果軟體或產品的創新並不一定意味著好用的話,為什麼現在要強調創新而不是強調好用?

李瑞 1830年8月28日,蒸汽機車第一次和馬進行比賽的時候甚至輸了,而且當時蒸汽機車的操作也比騎馬麻煩的多,維護成本很高。但是今天再看看呢?一百多年來,火車從最初的 20km h 到現在的高鐵的 350km h,但是馬的速度又有多少提公升呢?創新性產品更多的體現出的是 潛力 是比當前產品的更高的 ...

沒有個性和底線的善良,一定受過不少委屈吧

俊採星馳 說到我心坎了。我也走過這條路啊。這架勢讓人磋磨的啊,背鍋啊,拉踩啊,欺負啊。整得我哭都找不著調啊。後來啊,終於把我踩醒啦。看清啦。決定無論如何得支楞起來啦。於是乎換工作,換新環境,為自己制定規則,不要再無底線善良,那就是軟弱。終於在新環境中支楞起來了,告別了過去那段悽慘的生活。來到了新世界...