java 有人說c語(yǔ)言開發(fā)效率比java低是哪些因素導(dǎo)致的?
有人說c語(yǔ)言開發(fā)效率比java低是哪些因素導(dǎo)致的?由于標(biāo)準(zhǔn)C語(yǔ)言不提供操作系統(tǒng)的內(nèi)容,如果您想為系統(tǒng)開發(fā)應(yīng)用程序,需要使用系統(tǒng)提供的API。比如微軟的系統(tǒng)是MFC,使用起來很麻煩,不能跨平臺(tái)。但是,J
有人說c語(yǔ)言開發(fā)效率比java低是哪些因素導(dǎo)致的?
由于標(biāo)準(zhǔn)C語(yǔ)言不提供操作系統(tǒng)的內(nèi)容,如果您想為系統(tǒng)開發(fā)應(yīng)用程序,需要使用系統(tǒng)提供的API。比如微軟的系統(tǒng)是MFC,使用起來很麻煩,不能跨平臺(tái)。但是,Java在虛擬機(jī)中運(yùn)行。只要使用虛擬機(jī)提供的類庫(kù)來完成應(yīng)用程序,就不需要再學(xué)習(xí)系統(tǒng)API,只要操作系統(tǒng)支持Java虛擬機(jī),跨平臺(tái)非常方便。還有封裝效率的問題。Java提供的類庫(kù)相對(duì)簡(jiǎn)單,使用方便。這與C的MFC有關(guān),也與開發(fā)環(huán)境有關(guān)。用VC6.0開發(fā)Windows應(yīng)用程序是用C語(yǔ)言編寫的,我不認(rèn)為這是所見即所得。研究Java的組織結(jié)構(gòu)對(duì)您來說是很費(fèi)時(shí)的。但是,Java環(huán)境要簡(jiǎn)單得多。最后,C不支持面向?qū)ο蟮腏ava,但我不認(rèn)為這是重點(diǎn),因?yàn)槿绻悴恍枰跊]有提供類的情況下從頭開始構(gòu)建Java,對(duì)你來說是不方便的
說到運(yùn)行效率,你必須說到算法,一個(gè)好的算法可以極大地提高程序運(yùn)行的效率,同時(shí)也是最重要的優(yōu)化方法,包括循環(huán)的正確處理、時(shí)空、動(dòng)態(tài)規(guī)劃等。對(duì)于啟發(fā)式算法來說,一個(gè)好的剪枝策略可以有效地提高程序運(yùn)行的效率。避免遞歸,盡量使用非遞歸算法等。
優(yōu)化JVM虛擬機(jī),在運(yùn)行代碼之前,根據(jù)運(yùn)行場(chǎng)景、業(yè)務(wù)邏輯等,自定義JVM的運(yùn)行參數(shù),包括垃圾回收策略。
為了滿足高性能和低延遲的要求,我們必須為垃圾收集GC做充分的準(zhǔn)備,并使用適當(dāng)?shù)睦占呗浴?/p>
此外,許多第三方可以對(duì)Java虛擬機(jī)進(jìn)行更專業(yè)的優(yōu)化,例如Azul zing,它非常專業(yè),適合JVM垃圾收集優(yōu)化。當(dāng)然,這是收費(fèi)的。
希望能夠回答您的問題,有更多問題可以留言。
如何提高JAVA代碼的運(yùn)行效率?
我們已經(jīng)推出了幾個(gè)。Net核心項(xiàng)目,基本上是docker。凈核心2/3。說實(shí)話。netcore的GC非常好?;旧希悴恍枰馢ava那樣做很多優(yōu)化。所以沒有多少研究是正常的。換句話說,如果一個(gè)GC需要做很多優(yōu)化,那么它肯定不是一個(gè)好的GC。當(dāng)然,平時(shí)編程、常用的非托管對(duì)象處理等都必須掌握。