国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在什么情況下,Java比C++慢很多?

開發 后端
即使沒有逃逸分析,年青代的分配也是通過指針碰撞方式,在線程本地分配緩沖區(TLAB)中完成的,不需要進行同步。所以Java中小對象的分配有 的時候比C語言實現的 malloc() 方式更快。更好的 malloc 方法像Google的 tcmalloc,采用了類似的方式。

問:在什么情況下,Java 比 C++ 慢很多?

答:Ben Maurer:

為了回答這個問題,需要先將該問題分成幾個可能引起慢的原因:

在什么情況下,Java比C++慢很多?

垃圾回收器。這是一把“雙刃劍”。如果你的程序遵循“大部分對象都在年青代中消亡”模型,垃圾回收器是非常有利的(很少的碎片,更好的緩存局部性)。但是,如果程序不遵循該模型,JVM將花費很多資源來回收堆內存。

大對象。在Java中,所有的對象都有一個vtable指針,而C++中使用POD結構沒有額外開銷。此外,所有的Java對象是可以被鎖定的。其 實現依賴于JVM,這可能需要在對象中增加額外的字段。大對象 == 緩存更少的對象 == 更慢。(另一方面,Java 7 用64位記錄壓縮后的指針,這也是造成該問題的一部分原因。

缺乏內聯對象。在Java中,所有的類都是指針。在C++中,對象可以和其它對象一起分配,或者在棧上分配。這樣可以提高緩存的局部性,從而減少動態內存分配的開銷。

平臺函數調用。在Java中,JNI的調用或者將對象編譯成本地代碼都會帶來不小的開銷。如果你需要頻繁調用客戶端的C++代碼,會增加很大的開銷。

低效的強制抽象。例如,在Java中字符串是不可變的。如果你想寫一個XML分析器,你只使用String對象(沒有char[]),它將會很慢,因為需要分配額外的空間。

虛函數調用增加。JVM中,幾乎所有的函數調用都是虛函數調用。有許多代碼嘗試避免虛函數調用,但是很多場景下,JVM無法解決這個問題。這阻礙了代碼的內聯,使代碼變慢。

缺乏高級的編譯特征及轉為匯編的能力。 如果你寫了一段能從匯編得益的代碼Java可能表現不佳。

在我看來,***的問題是垃圾回收。在程序中,強制在大的內存中進行多次完全GC,是最容易導致Java和C++之間產生鴻溝的原因之一。除此之外,如果將程序的工作集放在L2緩存之外,像大對象、缺乏內聯對象等問題,也會導致兩者之間的巨大差別。

低效的強制抽象和平臺函數也會導致速度下降,但是這通常只會因為低級的代碼才會產生。如果你使用寫得很好的Java代碼庫,這通常不是什么大問題。

答:Todd Lipcon

我基本同意Ben Maurer(hey Ben?。┑幕卮稹S袔讉€小點不同:

在***的JVM中,當這種分配永遠不會從(a)局部函數或(b)局部線程逃逸出去的時候,逃逸分析能有效地決定一種固定分配。也就是說當分配不需要 加鎖,通常是在自身的棧空間上進行的。這兩種情況下都是一種簡單的“指針碰撞(bump the pointer)”分配,這等同于C中的棧分配。

譯者注:

  • 逃逸分析 Escape Analysis,是一種編譯優化技術,指分析指針動態范圍的方法。通俗地說,當一個對象的指針被多個方法或線程引用時,我們稱這個指針發生了逃逸。
  • 指針碰撞(bump the point)。假設Java堆中內存是絕對規整的,所有用過的內存都被放在一邊,空閑的內存被放在另一邊,中間放著一個指針作為分界點的指示器,那所分配 內存就僅僅是把那個指針向空閑空間那邊挪動一段與對象大小相等的距離,這種分配方式稱為“指針碰撞”。

即使沒有逃逸分析,年青代的分配也是通過指針碰撞方式,在線程本地分配緩沖區(TLAB)中完成的,不需要進行同步。所以Java中小對象的分配有 的時候比C語言實現的 malloc() 方式更快。更好的 malloc 方法像Google的 tcmalloc,采用了類似的方式。但是由于C語言無法在內存中對分配后的對象重新分配,所以某些方面會受到限制。

雖然存在內聯和虛函數問題,但是實際上,Java在某些情況下甚至可以做的比C更好。特別是,C不能通過動態鏈接功能來實現內聯,因為內聯是在編譯 時期進行的,而不是運行時期。而Java可越過不同的類或庫的邊界來動態內聯一個函數,即使該類的真正實現在編譯期間還不可用。許多工作中,這種方式比 C++的虛函數調用更有效,C++虛函數調用總是需要調用虛表。而JIT編譯器,如果之前動態屬性已經丟失(如新的類已經被加載),能夠聰明地取消內聯優 化。

新版本的GCC提供一些這方面優化,稱為“全程序優化”或“鏈接時優化”(http://gcc.gnu.org/wiki/LinkTime…),允許在工程范圍內越過對象文件進行內聯。但是,基本上還是不允許通過動態鏈接的方式來實現內聯(如通過內聯的方式實現zlib的調用等)。許多大型項目都是通過復制標準庫的功能到它們的代碼中來實現。

原文鏈接: quora 翻譯: ImportNew.com - paddx
譯文鏈接: http://www.importnew.com/16218.html

 

責任編輯:王雪燕 來源: ImportNew
相關推薦

2015-06-01 06:39:18

JavaJava比C++

2020-11-18 09:26:52

@property裝飾器代碼

2023-11-23 23:52:06

options請求瀏覽器

2024-01-09 11:39:47

數字化轉型數字優先企業

2013-09-12 10:41:39

VDI部署

2023-05-18 08:38:13

Java鎖機制

2013-07-29 14:50:43

API

2022-07-20 08:07:21

數據庫分布式數據庫

2013-09-23 10:05:50

2010-07-13 16:07:26

SQL Server行

2014-11-03 09:52:25

DNSUDPTCP

2022-09-05 10:01:19

VueReact

2024-07-05 10:19:59

2021-06-04 09:17:13

JavaScriptBoolean函數

2009-03-05 10:55:00

企業無線Wi-Fi

2010-07-20 12:46:23

SQL Server聚

2021-09-14 07:26:25

雪花算法ID

2025-05-26 08:15:00

Go開發指針

2010-04-14 17:46:10

Oracle數據庫

2024-11-29 11:01:25

點贊
收藏

51CTO技術棧公眾號

国产视频精品免费播放| 日韩av不卡在线观看| 最新热久久免费视频| 中文字幕日韩精品一区二区| 成人同人动漫免费观看| 麻豆成人在线看| 波多野一区二区| 色综合咪咪久久| 黑粗硬长欧美在线视频免费的| 成人午夜在线播放| 日韩中文一区| 国产精品www.| 欧洲亚洲免费视频| 成人午夜网址| 久久91亚洲精品中文字幕| 色综合一本到久久亚洲91| 日韩久久免费av| 伊人福利在线| 精品三级在线看| 黑人精品视频| 亚洲二区在线播放视频| 日日夜夜天天综合入口| 精品处破学生在线二十三| av免费网站在线观看| 精品视频在线免费| 日本精品一区二区三区在线播放| 欧美亚洲一区二区在线观看| 欧美日韩影视| 一本久道中文字幕精品亚洲嫩| 桃花色综合影院| 欧美色综合网站| 亚洲羞羞网站| 一本色道久久综合亚洲精品小说| 国产综合av| 欧美黑人巨大精品一区二区| 国产96在线亚洲| 国产成人精品在线播放| 91嫩草亚洲精品| 97久久天天综合色天天综合色hd| 欧美区国产区| 亚洲精品日韩在线观看| 国产精品香蕉一区二区三区| 欧美一级在线看| 亚洲视频一二三| 黄色片在线免费观看| 日韩精品一区二区三区中文精品| 六月婷婷综合| 5252色成人免费视频| 999久久久亚洲| 欧美日韩一区二区三区在线视频| 麻豆视频观看网址久久| 免费在线观看视频a| 中文字幕亚洲视频| 欧美日韩国产亚洲沙发| 亚洲成年人在线播放| 欧美男女视频| 91精品国产综合久久男男 | 国产伊人久久| 国模视频一区二区三区| 99久久综合| 三区精品视频观看| 久久久蜜臀国产一区二区| 成人在线小说| 亚洲第一二三四五区| 999久久久久久久久6666| 亚洲aⅴ日韩av电影在线观看 | 91精品在线看| 久久69国产一区二区蜜臀| 欧美黑人又粗又大又爽免费| 午夜电影一区二区| 伊人久久精品一区二区三区| 欧美一区第一页| 三级成人在线视频| 99热在线看| 亚洲经典中文字幕| 国产精品嫩草影院在线看| 日韩欧美视频一区二区三区四区| 国产女人水真多18毛片18精品视频| 你懂的视频在线免费| 中文国产成人精品| 亚洲精品美女| 久久av中文字幕片| 黄色羞羞视频在线观看| 国产精品久久久久99| 成人福利一区| 久久免费一区| 国产精品第一页第二页第三页| 2019中文字幕在线视频| 久久久久久有精品国产| 日本成人中文字幕在线视频| 四虎黄色影院| 亚洲毛片在线观看| 综合激情网站| 国产主播中文字幕| 日韩黄色av网站| 欧美黄色aaaa| 亚洲成人福利在线观看| 亚洲成人a级网| 亚洲成av人片乱码色午夜| 一本大道熟女人妻中文字幕在线| 5月丁香婷婷综合| 成人羞羞网站入口免费| 欧美xxxxx在线视频| 亚洲护士老师的毛茸茸最新章节 | 国产亚洲一区精品| 欧美高清不卡| 友田真希在线| 欧美激情免费在线| 成人网在线播放| 台湾佬中文娱乐网欧美电影| 国产精品一区二区欧美黑人喷潮水| 亚洲欧美日韩国产中文在线| 欧美专区一区| av动漫在线看| 日韩中文理论片| 国产凹凸在线观看一区二区| 91超碰在线免费| 日韩精品久久一区二区三区| 欧美网站大全在线观看| 亚洲精品99| 国产视频福利在线| 动漫精品视频| 欧美综合欧美视频| 亚洲国产一区二区精品专区| 人成在线免费视频| 成人免费观看网址| 一本在线高清不卡dvd| 性欧美69xoxoxoxo| 日本不卡视频一区二区| 91gao视频| 精品视频1区2区| 亚洲欧美日韩国产| 亚洲欧美成人影院| 青少年xxxxx性开放hg| 亚洲国产日韩欧美在线图片 | 26uuu亚洲| 欧美黄色一级| 在线观看免费黄网站| 久久久久久久久久国产| 国产精品久久久久久久久免费相片 | 激情综合色播激情啊| 成人性生交大片免费看在线播放| 久久99精品久久久久久久久久| 欧美精品乱码久久久久久| 久久精品二区三区| h片视频在线观看| 欧美 国产 精品| 美女视频久久黄| 中文字幕视频一区| 成人一区而且| 日本在线视频观看| av电影一区二区三区| 久久天天躁夜夜躁狠狠躁2022| 中文字幕精品三区| 亚洲高清影视| 草草视频在线| 精品少妇无遮挡毛片| 国产精品三级网站| 91精品国产手机| 粉嫩aⅴ一区二区三区四区| 日韩精品一区国产| 一级毛片在线观| 欧美一进一出视频| 日韩一区视频在线| 亚洲伊人色欲综合网| 国产欧美二区| 美女视频一区| 97在线观看免费观看| 欧美视频1区| 欧美激情久久久久久| 亚洲激情在线| 91.xxx.高清在线| 国产在线一区二区三区四区| 欧美在线视频你懂得| 青青草视频一区| 成人影院网站ww555久久精品| 成人福利影院| 91手机在线观看| 精品国产91九色蝌蚪| 97aⅴ精品视频一二三区| 美女毛片一区二区三区四区| 国产黄色在线| 精品少妇在线视频| 国产成人亚洲综合91精品| 在线一区二区三区| 国产二区国产一区在线观看| 亚洲电影一级片| 黄网站视频在线观看| 北条麻妃69av| 成人xvideos免费视频| 日韩福利在线播放| 亚洲色图另类专区| 狂野欧美一区| 久久影视三级福利片| 粗大黑人巨茎大战欧美成人| 免费毛片小视频| 精品不卡在线| 国内精品久久久久久影视8| 91精品国产综合久久久蜜臀图片| 日韩中文字在线|