反射為什么慢 java反射創(chuàng)建對象的效率是怎樣的呢?
java反射創(chuàng)建對象的效率是怎樣的呢?您應該知道,great spring框架的核心是Java的反射機制Java的啟動速度確實很慢,但是在系統(tǒng)穩(wěn)定運行后,JIT編譯器可以大大提高Java的運行速度。在
java反射創(chuàng)建對象的效率是怎樣的呢?
您應該知道,great spring框架的核心是Java的反射機制
Java的啟動速度確實很慢,但是在系統(tǒng)穩(wěn)定運行后,JIT編譯器可以大大提高Java的運行速度。在使用了專業(yè)定制的商業(yè)JDK之后,Java的運行速度不再是問題,比如alijdk。而且,對于互聯(lián)網(wǎng)企業(yè)來說,可以通過虛擬化技術(shù)大規(guī)模增加機器,也可以使用云計算,機器的性能還不夠。現(xiàn)在有了一種混合技術(shù),甚至機器資源都可以共享。一般來說,Java的效率并不是瓶頸。
另一方面,Java的生態(tài)已經(jīng)非常成熟。通用的框架、大量的程序員、各大公司的商業(yè)應用都是Java的芯片。Java最成功的技術(shù)是虛擬機技術(shù),現(xiàn)在kotlin和其他基于JVM的語言誕生了。可以說,Java的地位在短時間內(nèi)是不可撼動的。
Java誕生于C之后,它解決了C的許多問題,如指針引起的安全問題。已經(jīng)做了很多優(yōu)化,比如去掉完全面向?qū)ο蟮慕Y(jié)構(gòu)化編程,添加垃圾回收機制以避免內(nèi)存泄漏。如果你不需要操作底層,比如修改內(nèi)存數(shù)據(jù)和操作硬件,但是做純粹的上層應用程序,C就不如Java好。分享學習筆記和技術(shù)總結(jié),涵蓋Java技術(shù)、軟件架構(gòu)、前沿技術(shù)、開源框架、數(shù)據(jù)結(jié)構(gòu)與算法、編程感悟等領(lǐng)域,歡迎使用微信公眾號“程序心”。
為什么java運行效率低,而目前的大數(shù)據(jù)平臺卻都用java而不用C 開發(fā)?
首先,讓我們陳述一下結(jié)論:java反射很慢,但它比直接調(diào)用慢一個數(shù)量級。但是,在某些情況下,必須使用反射,并且在反射過程中可以使用一些方法進行人工優(yōu)化
那么,讓我們來談談java反射有點慢的原因
1。與Python相比,Java是一種靜態(tài)語言類型,也就是說Java是一種靜態(tài)語言,也就是說,Java在編譯時編譯代碼時,會進行強類型檢查,Java在編譯時優(yōu)化代碼,在運行時進行反射。也就是說,這些類型檢查和代碼優(yōu)化都是在運行時完成的,這自然需要一點時間。在編譯時很難在運行時優(yōu)化反射,而且當前的編譯時間仍然很短,這不是很智能。我知道你需要用這個反射代碼做什么
3。再次調(diào)用實現(xiàn)過程。在反射調(diào)用過程中,執(zhí)行器稱為methodaccessor。我記得這個東西裝得很慢。也就是說,第一次反射調(diào)用可能需要較長的時間,稍后會調(diào)用方法.invoke方法還需要修改參數(shù)數(shù)組,封裝可能涉及參數(shù)類型的自適應,而且封裝和解包也有消耗。其實說到底,我還是不知道具體的參數(shù)類型
javascript語言只花了十天的時間就設(shè)計出來了,所以自然的設(shè)計并不完美。甚至,一旦頁面打開,彈出的小廣告,都是用JS完成的。隨著Google地圖等應用程序的發(fā)布,AJAX技術(shù)徹底火了JS,很多應用程序使用AJAX,最重要的技術(shù)就是JavaScript。
盡管JavaScript有缺陷,但它仍在不斷升級。經(jīng)過不斷的改進,現(xiàn)在的JS應該說是優(yōu)秀的。隨著大前端時代的到來,節(jié)點.js, 虛擬用戶.js等等技術(shù),也讓JS的地位不可動搖。想要完全取代JS,不是一夜之間。微軟推出了typescript,谷歌推出了dart來取代JS,但現(xiàn)在看來還有很長的路要走。
沒有語言是完美的,就像沒有人是完美的一樣。程序員只需要找到最合適的語言。在未來,也許有一天,一種新的語言將取代JavaScript。
Java反射到底慢在哪里?
由于標準C語言不提供操作系統(tǒng)的內(nèi)容,如果您要為系統(tǒng)開發(fā)應用程序,需要使用系統(tǒng)提供的API。比如微軟的系統(tǒng)是MFC,使用起來很麻煩,不能跨平臺。但是,Java在虛擬機中運行。只要使用虛擬機提供的類庫來完成應用程序,就不需要再學習系統(tǒng)API,只要操作系統(tǒng)支持Java虛擬機,跨平臺非常方便。還有封裝效率的問題。Java提供的類庫相對簡單,使用方便。這與C的MFC有關(guān),也與開發(fā)環(huán)境有關(guān)。用VC6.0開發(fā)Windows應用程序是用C語言編寫的,我不認為這是所見即所得。研究Java的組織結(jié)構(gòu)對您來說是很費時的。但是,Java環(huán)境要簡單得多。最后,C不支持面向?qū)ο蟮腏ava,但我不認為這是重點,因為如果你不使用Java提供類,你就不需要從頭開始構(gòu)建它們
首先,PHP比Java更開放業(yè)界一致認為Java比PHP快,但它的開發(fā)效率慢。這也是實際情況。那么,為什么會導致這種“倒掛”現(xiàn)象呢?本文詳細分析了這兩種語言的優(yōu)缺點:1。發(fā)展速度:2。它非常適合作為一種大型前端開發(fā)語言(因為前端邏輯可能會頻繁更改)。
2. 性能:在小項目中,PHP的性能比Java高(Java比PHP需要更多的服務器硬件,占用更多的資源);但在大項目中,Java的穩(wěn)定性比PHP好幾個檔次,性能也比PHP好幾個檔次??傊?,PHP只適合于中小型網(wǎng)站,或者是前景廣闊的大型網(wǎng)站。
3. 安全性:PHP比其他腳本語言更安全,但如果開發(fā)人員不注意,很容易形成許多漏洞,因為PHP本身是弱類型語言,而Java是強類型語言,比PHP更安全。所以一般的銀行系統(tǒng)都是Java。
Java更具權(quán)威性。因此,在大型項目中,Java比PHP更容易被選擇,因為PHP只適用于網(wǎng)站應用程序。Java在開發(fā)速度上是緩慢的,但是可以換取持久性的穩(wěn)定性。