3
A
回答
3
不是真的。類/結構體只是將偏移量定義到內存中,所以如果在類中的類中有類,編譯器會將偏移量加起來。
性能進場,一旦你有一個指針(每一個指針引用是閱讀和可能的L2高速緩存未命中的存儲器)或虛擬功能(非常糟糕,尤其是在較老的CPU)。
編輯:有一件事我應該注意,雖然 - 如果你正在開發一個應用程序,性能也不是絕對的關鍵,着力做好一流的設計,而不是性能。雖然像L2緩存未命中這樣的東西在編寫需要以60fps運行的東西時會產生很大的差異,但它與正常的桌面應用程序沒有多大關係。
1
不應該有任何表現或記憶懲罰。它們只是語法糖,可以讓程序員更容易。
0
簡短回答:不可以。
1
相關問題
- 1. 性能損失嵌套的MySQL查詢
- 2. TinyMCE triggerSave()命令 - 是否存在性能損失?
- 3. 重複調用UIGraphicsGetCurrentContext時是否有任何性能損失
- 4. 在執行事務下的只讀查詢時是否存在性能損失?
- 5. 使用Datomic嵌套結構
- 6. golang:使用嵌套結構
- 7. 我是否應該使用嵌套塊來提高性能
- 8. 使用NIB文件的性能損失?
- 9. 未使用視圖的性能損失?
- 10. 使用Matlab parfeval的性能損失?
- 11. 在Objective C中使用isKindOfClass的性能損失是多少?
- 12. 在Go使用結構中存儲/訪問嵌套數據?
- 13. 在Java 8中使用嵌套數據結構功能性地反轉地圖
- 14. 在sequelize.js中,是否可以使用嵌套包含嵌套查詢的結果?
- 15. MarshalAs嵌套結構
- 16. Ftp.MakeDirectory嵌套結構
- 17. 嵌套STL結構
- 18. 使用豬的MultiStorage嵌套結構
- 19. 使用嵌套值搜索樹結構?
- 20. 嵌套結構內存分配
- 21. 嵌套結構分配內存
- 22. @ServiceHost Debug =「true」 - 性能損失?
- 23. 提取函數是否會導致性能損失?
- 24. 從其他程序集加載類是否有性能損失?
- 25. 嵌套結構如何影響DocumentDB查詢性能?
- 26. 使用IN(子查詢)時性能損失較大。爲什麼?
- 27. 初始化結構和嵌套結構
- 28. 如何檢查嵌套屬性是否存在於SimpleXML中
- 29. 嵌套Linq性能
- 30. 性能損失調用CUDA內核
那麼指針會受到懲罰? – vol7ron 2010-09-16 23:50:29
將它們引用。 pA-> pB-> pC-> pD將強制系統從四個地址讀取。每個人都可能處於不同的緩存頁面,並導致昂貴的L2緩存未命中。既然你已經遵循pA來找出pB,你將無法預取。但是:指針用於將少量使用的數據從主結構中保留下來,所以如果你有一個需要迭代的結構數組,那麼保留你在結構中使用的實際數據以及所有很少使用的東西在一個單獨的類/結構中,以便您需要獲取更少的緩存頁面。 – EboMike 2010-09-16 23:59:16
虛擬函數調用只是一個或兩個內存解除引用,用於從vtable中獲取函數地址,然後調用函數。性能不會比例如C中具有函數指針的結構差得多。並且在Linux內核中這樣的結構是* everywhere *。 – SoapBox 2010-09-17 00:19:07