0
我在這裏比較普通JavaScript中的加法操作和執行相同操作的函數。這個操作被封裝在JavaScript函數中的實例執行速度比普通操作要快。我在這個比較中做了什麼錯誤?Javascript函數比普通操作更快
https://jsperf.com/in-function-operators#comment-form
我在這裏比較普通JavaScript中的加法操作和執行相同操作的函數。這個操作被封裝在JavaScript函數中的實例執行速度比普通操作要快。我在這個比較中做了什麼錯誤?Javascript函數比普通操作更快
https://jsperf.com/in-function-operators#comment-form
當運行微基準,它們都執行withing彼此的1%/ 2%,從而真正爲所有意圖和目的它們執行相同的(錯誤的此處即餘量)。
爲什麼他們的表現大致相同的答案是,JavaScript JIT已決定功能應爲inlined,從而使其性能與普通操作類似。在某些情況下,JIT甚至可以確定您將兩個常量加在一起,並直接替換代碼assignment operation instead(這裏有關於Uglify如何用7代替1 + 2 * 3的註釋,JIT編譯器將會如果可以識別它,則執行相同的操作)。
這是一種錯誤的方法來進行基準測試和理解編譯器。在你能夠理解這些結果之前,你需要了解如何編寫正確的基準。 – naomik
給函數添加至少600個字符的評論並再次測試 - 您不會相信接下來會發生什麼! –
它也不是一個編譯器,因爲不同的瀏覽器有不同的結果。剛剛發現它好奇。我想知道如果我可以在js中使用函數而沒有巨大的性能處罰。我看到我做錯了,使用常量鉻注意到它,並以某種方式優化功能。我添加了隨機數字,這些數字幾乎相同。 (在鉻是) –