日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:183日期:2022-09-06 08:10:40

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

答:Ben Maurer:

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

垃圾回收器。這是一把“雙刃劍”。如果你的程序遵循“大部分對象都在年青代中消亡”模型,垃圾回收器是非常有利的(很少的碎片,更好的緩存局部性)。但是,如果程序不遵循該模型,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!)的回答。有幾個小點不同:

在最新的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

標簽: Java
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本在线视频一区二区| 91综合视频| 亚洲一区二区三区高清| 最新亚洲激情| 在线精品一区二区| 亚洲在线久久| 日韩激情啪啪| 巨乳诱惑日韩免费av| 石原莉奈在线亚洲三区| 一本综合精品| 欧美久久一区二区三区| 国产黄色精品| 国产精品99一区二区三| 日韩天堂在线| 亚洲精品a级片| 日韩午夜视频在线| 国产亚洲久久| 日本一区二区高清不卡| 99久久精品费精品国产| 女同性一区二区三区人了人一| 亚洲欧美久久久| 91精品啪在线观看国产爱臀| 国产伦乱精品| 蜜桃视频在线网站| 国产亚洲福利| 日本天堂一区| 国产suv精品一区二区四区视频| 欧美日韩一二三四| 亚洲另类av| 麻豆视频观看网址久久| 99视频精品视频高清免费| 亚洲欧美日韩视频二区| 日韩不卡手机在线v区| 精品久久一区| 亚洲经典在线| 国产精品hd| 久久视频精品| 免费日韩视频| 国产极品模特精品一二| 91精品一区二区三区综合| 日韩中文字幕av电影| 欧美日本三区| av资源新版天堂在线| 亚洲免费高清| 国产精品啊v在线| 久久久久国产精品一区三寸| 西西人体一区二区| 国产伦乱精品| 亚洲二区三区不卡| 国产免费播放一区二区| 视频福利一区| 日本少妇一区二区| 国产一区二区精品福利地址| 蜜臀91精品国产高清在线观看| 日韩精品国产欧美| 久久精品国产www456c0m| 日韩高清欧美激情| 精品免费av在线| 欧美在线黄色| 999精品一区| 国产免费av一区二区三区| 激情视频一区二区三区| 国产美女久久| 午夜在线播放视频欧美| 国产成人久久| 91精品国产一区二区在线观看 | 国产精品日韩欧美一区| 国产精品久久亚洲不卡| 在线一区电影| 国产91在线精品| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 久久在线91| 首页亚洲欧美制服丝腿| 狠狠躁少妇一区二区三区| 免费成人av在线播放| 日韩中文在线电影| 久久久精品国产**网站| 亚洲丝袜美腿一区| 亚洲午夜一级| 精品日本视频| 欧美一区不卡| 在线观看一区| 99成人在线| 日韩精品网站| 成人精品久久| 捆绑调教美女网站视频一区| 日韩二区在线观看| 亚洲免费中文| 蜜桃一区二区三区| 国产乱码午夜在线视频| 国产高清亚洲| 国产亚洲电影| 日韩区欧美区| 亚洲天堂免费| 久久亚洲国产精品一区二区| 久久久久国产一区二区| 精品视频自拍| 麻豆久久一区| 国产精品2区| 国产日韩欧美一区二区三区在线观看| 久久国产精品久久久久久电车| 日韩av免费| 婷婷综合六月| 日韩大片在线| 免费日韩成人| 日韩不卡在线| 综合在线一区| 精品三级久久| 国产一区二区三区不卡视频网站| av综合电影网站| 国产精品亚洲综合在线观看| 亚洲成a人片| 亚洲专区欧美专区| 国产欧美日韩免费观看| 老牛影视精品| 日韩国产一区二区| 亚州av一区| 国产精品一区二区中文字幕| 国产不卡人人| 91亚洲国产| 国产成人1区| 日韩精品久久久久久久软件91| 成人国产精品一区二区免费麻豆| 国产精品一区二区美女视频免费看| 成人一区而且| 精品成人免费一区二区在线播放| 久久美女性网| 亚洲精品影院在线观看| 国产精品久一| 精品中文字幕一区二区三区av| 老司机精品久久| 国产精品白丝av嫩草影院| 成人福利视频| 亚洲毛片在线| 国产精品亚洲产品| 国产欧美日韩免费观看| 日韩中文字幕无砖| 成人国产精品| 综合激情一区| 久久九九精品| 国产精品手机在线播放| 亚洲国产一区二区三区在线播放| 亚洲精品高潮| 久久在线视频免费观看| 久久精品999| 久久成人国产| 精品捆绑调教一区二区三区| 在线天堂资源www在线污| 国产99久久久国产精品成人免费| 欧美精品国产| 国产精品亚洲人成在99www| 精品久久网站| 亚洲精品极品少妇16p| 日韩av三区| 国产精品美女久久久| 亚欧洲精品视频在线观看| 日本综合精品一区| 国产成人精选| 视频一区中文字幕国产| 91麻豆精品激情在线观看最新| 久久久久伊人| 亚洲精品一区二区在线看| 日韩理论片av| 久久精品免视看国产成人| 亚洲男女av一区二区| 精品一区二区三区四区五区| 国产精品7m凸凹视频分类| 久久婷婷亚洲| 日韩av在线免费观看不卡| 精品视频97| 日韩中文字幕亚洲一区二区va在线 | 国产精品一区二区三区www | 久久永久免费| 日本一区福利在线| 亚洲va中文在线播放免费| 欧美国产另类| 久久国产精品免费精品3p| 蜜桃传媒麻豆第一区在线观看 | 婷婷精品在线观看| 国产亚洲欧洲| 欧美片第1页| 四虎成人av| 麻豆91在线播放| 黑丝美女一区二区| 麻豆久久一区| 中文字幕日本一区二区| 麻豆精品av| 国产麻豆精品| 亚久久调教视频| 亚洲制服一区| 亚洲精品日本| 午夜国产精品视频| 色婷婷久久久| 玖玖精品视频| 国产高清一区二区| 999在线观看精品免费不卡网站| 精精国产xxxx视频在线野外 | 日产午夜精品一线二线三线| 国产麻豆精品久久| 狠狠干成人综合网|