Rumah >pembangunan bahagian belakang >Golang >Prestasi Go tidak sehebat Java?
Hari ini saya melihat pengiraan saintifik dan statistik tentang <span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;font-size: 14px;">Go</span>
和 <span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;font-size: 14px;">Java</span>
性能对比的问题,这种问题通常只有一个结局,那就是无休止的争论,十年之后,如果这两个语言还健在的话,这可能依然是热门问题:
目前我主要使用的也是Java和Go,方向是大数据,首先我谈一下我的看法吧:
大部分语言都有它擅长的领域,存在即合理:
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">PHP</span>
擅长构建低成本WEB,也是世界上最好的语言
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">c</span>
擅长操作系统、嵌入式
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">Go</span>
天生高并发属性
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">R</span>
pada Zhihu yang tiada siapa dapat menandingi
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial ;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">Python<code style="box-sizing: border-box;background: rgb(243, 241, 241);color: rgb(88, 88, 88);font-size: 16px;line-height: 18px;"><span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">Python</span>
在AI领域独占鳌头
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;font-size: 15px;">Java</span>
工业级应用服务及Android (长期霸占TIOBE榜第一的老流氓)
<span style="color: rgb(74, 74, 74);box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;">Benchmarks</span>
的测试数据固然能说明一些问题,但这种测试环境和方式还是不够接地气呀,很少有遇到类似的Case不说,实际使用中也不会因为几ms的差距去换语言重构项目。
<span style="color: rgb(74, 74, 74);font-size: 16px;box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;">热点代码</span>
,这个概念很重要,有些代码片段一个月就命中一次,那就不需要多少极致的优化了。
<span style="color: rgb(74, 74, 74);font-size: 16px;box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;">28</span>
法则,把 80% 的精力花在重要的 20% 的代码上吧,人的精力有限,而且世界上还有很多美好的事情,比如写原创文章分享给大家(手动眨眼)。
<span style="color: rgb(74, 74, 74);font-size: 16px;box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;">Talkischeap.Showme the code.</span>
在AI领域独占鳌头
<span style="box-sizing: border-box;background-image: initial;background-position: initial;background-size: initial;background-repeat : awal;lampiran-latar belakang: awal;latar-asal-asal: awal;klip-latar belakang: awal;paparan: inline-block;padding-kanan: 2px;padding-left: 2px;line-height: 22px;font-size: 15px ;">Java</span>
<span style="color: rgb(74, 74, 74);box- saiz: kotak sempadan;imej latar belakang: awal;kedudukan latar belakang: awal;saiz latar belakang: awal;latar belakang-ulang: awal;lampiran-latar belakang: awal;latar belakang-asal: awal;klip latar belakang: awal;paparan: blok sebaris;padding-kanan: 2px;padding-left: 2px;line-height: 22px;">Tanda Aras🎜</span>
的测试数据固然能说明一些问题,但这碘,但这碕,但这碕,但这行是不够接地气呀,很少有遇到类似的 Case不说,实际使用中也不会因为几ms的差距去换语言重更🎜💀重更🎜🎡 <span style="color: rgb(74, 74, 74);font-size: 16px;box-sizing: border -kotak;imej latar belakang: awal;kedudukan latar belakang: awal;saiz latar belakang: awal;latar belakang-ulang: awal;lampiran-latar: awal;latar belakang-asal: awal;klip latar belakang: awal;paparan: sebaris-blok ;padding-kanan: 2px;padding-left: 2px;line-height: 22px;">热点代码🎜</span>
,这个概念很重要,有些代码片些代码片些代码片些代码片些代码片段一中一一中中中文就不需要多少极致的优化了。🎜🎜🎜🎜🎜<span style=" warna: rgb(74, 74, 74);saiz fon: 16px;saiz kotak: kotak sempadan;imej latar belakang: awal;kedudukan latar belakang: awal;saiz latar belakang: awal;ulang-latar: awal;latar belakang -lampiran: awal;latar belakang-asal: awal;latar-klip: awal;paparan: sebaris-blok;padding-kanan: 2px;padding-kiri: 2px;garis-tinggi: 22px;">28🎜</span>
法则,把 80% 的精力花在重要的 20% 的代码上吧,人的精力有限,而且世界上还有很多上还有很多于徎厅文章分享给大家(手动眨眼)。🎜🎜🎜🎜🎜<span style="color: rgb(74, 74, 74 );saiz fon: 16px;saiz kotak: kotak sempadan;imej latar belakang: awal;kedudukan latar belakang: awal;saiz latar belakang: awal;ulang-latar: awal;lampiran-latar belakang: awal;asal latar belakang: initial;background-clip: initial;display: inline-block;padding-right: 2px;padding-left: 2px;line-height: 22px;">Talkischeap.Show me the code.🎜</span>
以我的经验来看,目前大部分人的编程水平,还轮不到谈及语言本身的性能,如果你不昑,还轮不到谈及语言本身的性能,如果你不昑,那萯微中。 🎜🎜🎜🎜🎜优缺点总结🎜🎜有个朋友回复的内容我觉得非常客观,也比较典型,知乎上抓过来的,侵删。🎜Masalah semasa dengan JAVA bukan prestasi, kerana kod yang dioptimumkan secara automatik oleh JIT sudah setanding dengan C.
Masalah dengan JAVA ialah dalam projek sebenar, terdapat terlalu banyak kebergantungan pihak ketiga, seni bina yang membengkak, dan reka bentuk yang berlebihan Pada masa ini, sukar untuk mengatakan siapa yang akan menang.
Saya secara peribadi berpendapat bahawa kerana go pada asasnya hanya memerlukan perpustakaan standard, prestasi dalam projek sebenar adalah lebih baik daripada JAVA (Coroutine Go pada dasarnya adalah model IO tak segerak, bahasa Go: semuanya tak segerak), di samping itu, penggunaan sumber adalah juga sebahagian daripada prestasi Jelas sekali go mempunyai penggunaan memori yang lebih kecil dan penggunaan CPU yang agak rendah. . sintaks
Tiada generik
- Struktur data dalam pustaka standard jauh kurang kaya daripada Java
- pengurusan Kebergantungan
Salurkan jika digunakan secara tidak betul, ia adalah sangat mudah untuk buntu
Pengimportan kitaran tidak dibenarkan semasa penyusunan
Banyak nama pakej akan bercanggah dengan nama pembolehubah tersuai apabila pengekodan
- diambil dalam Java diberikan, saya mendapati bahawa saya perlu mencipta semula roda dalam Go
- Arahan go get akan mengklon keseluruhan repositori git, termasuk komitmen sejarah
- Perpustakaan standard tidak menyediakan kolam rutin
Tiada mekanisme Masa Depan yang siap, anda perlu melaksanakannya sendiri melalui saluran
Itulah perkara yang terlintas di fikiran buat masa ini; Kekurangan Java:
Kekurangan kebolehan ekspresi bahasa (pepatah sederhana dipanggil "lagi" Bau dan panjang")
Memori tinggi dan penggunaan CPU
Apabila ingatan timbunan besar, pemungut sampah memerlukan penalaan yang mendalam untuk mendapatkan hasil kitar semula yang memuaskan, walau bagaimanapun, dalam beberapa kes di mana prestasi masa nyata diperlukan Dalam senario tinggi, gc mungkin tidak dapat diselesaikan, ia akan berlaku be hell
- . ), mengakibatkan penggunaan The Application of Family Bucket mempunyai prestasi yang lemah (sila rujuk kedudukan spring dalam TechEmpower Pusingan 14), tetapi ia sudah memadai untuk digunakan
Program perlu dipanaskan
Oleh kerana terdapat terlalu banyak rangka kerja dan perpustakaan yang matang , ramai orang terpedaya apabila mereka mula dan berfikir Pengaturcaraan bermakna melaraskan API dan menggunakan rangka kerja, tetapi mengetahui sangat sedikit tentang prinsip
Itulah perkara yang terlintas di fikiran buat masa ini, sudah tentu, kelebihan Java jauh mengatasi kekurangan ini, jika tidak, ia tidak akan berada di kedudukan pertama dalam kedudukan bahasa pengaturcaraan TIOBE sepanjang tahun
Atas ialah kandungan terperinci Prestasi Go tidak sehebat Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!