簡體   English   中英

V8引擎將JavaScript編譯為機器代碼。那么,為什么node.js不比C快?

[英]V8 engine compiles JavaScript to machine code. So, why node.js isn't faster than C?

根據語言基准測試 ,JavaScript V8在regex-dna程序中比其他編程語言更快。 那么,為什么node.js應用程序(即http服務器)不比C應用程序(即Nginx,Lighttpd)快?

因為V8應用程序是javascript應用程序。 即使javascript最終編譯為機器代碼,運行時特性也不同。

例如,如果在對象中調用函數並且該對象未定義函數,則運行時必須通過遍歷原型層次結構來定位函數,此層次結構可以在程序的生命周期內隨時更改。 可以進行巧妙的優化,但仍然存在開銷。

還有內存模型。 Javascript被垃圾收集,GC需要cpu周期。

因為提供http請求與regex-dna不同。

在一項任務中A比B快的事實並沒有說明從其他任務中得到什么。

強制性的壞車比喻:火腿三明治比保時捷更美味。 為什么從0-60開始沒有更快?

對於一個C來說,它本質上是計算速度的基准語言。 如今的編譯器非常好,可以生成非常高效的機器代碼。 這意味着性能的上限是你可以用C得到的。

在他關於node.js的一篇演講中,Ryan Dahl(創建者) 節點的速度和C一樣快。(但GC和其他東西確實對性能有影響,更不用說V8需要時間來正確優化事物)

在該基准測試中,有15個不同的程序和只有一個dna-regex基准測試,你可以看到JavaScript V8更快。 在其他基准測試中,JavaScript的性能要低得多。 您可以在第一個選擇中選擇程序,看看這一個

根據語言基准測試 ,JavaScript V8在二叉樹程序中並不比GCC快。

根據語言基准測試,在V核苷酸程序中,JavaScript V8 並不比GCC快。

根據語言基准測試,JavaScript V8在n-body程序上並不比GCC快。

根據語言基准測試,JavaScript V8在頻譜規范程序中並不比GCC快。

根據語言基准測試,JavaScript V8在fasta程序中並不比GCC快。

根據語言基准測試,JavaScript V8在反向補充程序中並不比GCC快。

根據語言基准測試,JavaScript V8在pidigits程序上並不比GCC快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM