偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

前端程序員應(yīng)知應(yīng)會(huì)之JavaScript基準(zhǔn)測試套件

開發(fā) 前端
為了測試V8作為JavaScript引擎的性能,Google隨后也開發(fā)了一套V8基準(zhǔn)測試套件,在運(yùn)行時(shí),V8基準(zhǔn)套件會(huì)載入一些特定的JavaScript代碼,從而測試引擎的內(nèi)核、加密、解密、渲染等速度。而該套件也就成為了JavaScript引擎性能的標(biāo)準(zhǔn)。

本文來自公眾號(hào)活在信息時(shí)代。

對(duì)于前端程序員來說,V8引擎無疑是最為熟悉的工具之一了。V8是Google開源的JavaScript和WebAssembly引擎,用C++編寫。它用于Chrome和Node.js等。V8可以獨(dú)立運(yùn)行,也可以嵌入到任何C++應(yīng)用程序中。

為了測試V8作為JavaScript引擎的性能,Google隨后也開發(fā)了一套V8基準(zhǔn)測試套件,在運(yùn)行時(shí),V8基準(zhǔn)套件會(huì)載入一些特定的JavaScript代碼,從而測試引擎的內(nèi)核、加密、解密、渲染等速度。而該套件也就成為了JavaScript引擎性能的標(biāo)準(zhǔn)。

在該套件的第七個(gè)版本中,一共包括了八項(xiàng)基準(zhǔn)測試,最終得分為這八項(xiàng)測試得分的幾何平均數(shù)。得分越高表明速度越快。這八項(xiàng)測試的具體內(nèi)容如下:

一、Richards基準(zhǔn)

操作系統(tǒng)內(nèi)核的模擬基準(zhǔn), 最早出現(xiàn)于Matin Richards開發(fā)的BCPL中(539 行)。

主要關(guān)注點(diǎn):屬性加載/存儲(chǔ)、函數(shù)/方法調(diào)用

次要關(guān)注點(diǎn):代碼優(yōu)化、消除冗余代碼

二、DeltaBlue基準(zhǔn)

單向約束求解,最早出現(xiàn)于 John Maloney 和 Mario Wolczko開發(fā)的Smalltalk中 (880 行)。

主要關(guān)注點(diǎn):多態(tài)

次要關(guān)注點(diǎn):OO 樣式編程

三、Crypto基準(zhǔn)

Tom Wu開發(fā)的以代碼為基礎(chǔ)的加密解密基準(zhǔn)(1698 行)。

主要關(guān)注點(diǎn):位運(yùn)算

四、RayTrace基準(zhǔn)

Adam Burmister開發(fā)的以代碼為基礎(chǔ)的光線追蹤基準(zhǔn) (904 行)。

主要關(guān)注點(diǎn):參數(shù)對(duì)象,應(yīng)用

次要關(guān)注點(diǎn):原型庫對(duì)象,創(chuàng)建模式

五、EarleyBoyer基準(zhǔn)

經(jīng)典Scheme 基準(zhǔn), 由Florian Loitsch的Scheme2Js編譯器翻譯為JavaScript (4684 行)。

主要關(guān)注點(diǎn):快速創(chuàng)建、銷毀對(duì)象

次要關(guān)注點(diǎn):閉包, 參數(shù)對(duì)象

六、RegExp基準(zhǔn)

正則表達(dá)式基準(zhǔn),從50多個(gè)最流行的網(wǎng)頁中提取正則表達(dá)式操作所產(chǎn)生的(1761 行)。

關(guān)注點(diǎn):正則表達(dá)式

七、Splay基準(zhǔn)

數(shù)據(jù)操作基準(zhǔn),處理伸展樹和執(zhí)行自動(dòng)內(nèi)存管理子系統(tǒng) (394 行)。

主要關(guān)注點(diǎn):快速創(chuàng)建、銷毀對(duì)象

八、NavierStokes基準(zhǔn)

根據(jù)奧利弗·亨特的代碼,在2D上解決navierstokes方程,重操縱雙精度數(shù)組。(387 行).

主要關(guān)注點(diǎn):讀取和寫入數(shù)字?jǐn)?shù)組。

次要關(guān)注點(diǎn):浮點(diǎn)數(shù)學(xué)運(yùn)算。

V8基準(zhǔn)測試在早期的JavaScript引擎開發(fā)過程中應(yīng)用廣泛,很多JS引擎都使用該基準(zhǔn)測試用于評(píng)測其性能。常用的JS引擎測試結(jié)果如下:

圖片

盡管V8基準(zhǔn)測試套件非常經(jīng)典,但是隨著技術(shù)的發(fā)展,Google又推出了新的基準(zhǔn)測試套件Octane 1.0和2.0,陸續(xù)增加了下列九項(xiàng)測試基準(zhǔn):

pdf.js:在JavaScript中實(shí)現(xiàn)了Mozilla的PDF閱讀器。它可以測量解碼和解釋的時(shí)間(33,056行)。

主要關(guān)注點(diǎn):數(shù)組和類型化數(shù)組操作。

次要關(guān)注點(diǎn):數(shù)學(xué)運(yùn)算和位運(yùn)算,以及對(duì)未來語言功能(例如 promise)的支持

SplayLatency:Splay 測試側(cè)重于虛擬機(jī)的垃圾回收子系統(tǒng)。SplayLatency 對(duì)現(xiàn)有 Splay 代碼進(jìn)行頻繁測量檢查點(diǎn)插樁。檢查點(diǎn)之間長時(shí)間暫停表示 GC 延遲時(shí)間較長。此測試衡量延遲暫停的頻率,將它們分類為分桶,并根據(jù)低分懲罰頻繁的長暫停。

主要關(guān)注點(diǎn):垃圾回收延遲

Mandreel:運(yùn)行3D Bullet物理引擎,該引擎通過Mandreel將C++移植到JavaScript (277377行)。

主要關(guān)注點(diǎn):模擬

MandreelLatency:與SplayLatency 測試類似,此測試通過頻繁的時(shí)間測量點(diǎn)對(duì) Mandreel 基準(zhǔn)進(jìn)行插樁。由于 Mandreel 對(duì)虛擬機(jī)編譯器施加壓力,因此該測試會(huì)提供編譯器引入的延遲指示。在測量點(diǎn)之間長時(shí)間暫停會(huì)降低最終得分。

主要關(guān)注點(diǎn):編譯器延遲時(shí)間

GB Emulator:全部采用JavaScript模擬便攜式控制臺(tái)的架構(gòu),以及運(yùn)行所需的3D模擬(11,097行)。

主要關(guān)注點(diǎn):模擬

Code loading:測量Javascript引擎在加載了一段大型的Javascript程序后開始解碼的速度有多快,一個(gè)常見的實(shí)例為Social Widget。該測試的源代碼來自開源代碼庫(Closure, jQuery)(1,530行)。

主要關(guān)注內(nèi)容:JavaScript 解析和編譯

Box2DWeb:基于流行的2D物理引擎Box2DWeb,最初由Erin Catto編寫,現(xiàn)被移植到JavaScript。(560行,9000+ 精簡版)

主要關(guān)注點(diǎn):浮點(diǎn)數(shù)學(xué)運(yùn)算。

次要關(guān)注點(diǎn):包含 Double 的屬性、訪問器屬性。

Zlib:從 Mozilla Emscripten 套件執(zhí)行的 zlib asm.js/Emscripten 測試(在工作負(fù)載 1 中運(yùn)行)。代碼包含在 eval() 中,它保證我們測量的運(yùn)行時(shí)間包括在所有瀏覽器上解析和編譯(2,585 行)。

主要關(guān)注點(diǎn):代碼編譯和執(zhí)行

Typescript:Microsoft&Type 39 TypeScript 編譯器是一款復(fù)雜的應(yīng)用。此測試用于衡量 TypeScript 編譯本身所需的時(shí)間,它代表虛擬機(jī)在處理復(fù)雜、可調(diào)整大小的 JavaScript 應(yīng)用(25918 行)方面的表現(xiàn)。

主要關(guān)注點(diǎn):運(yùn)行復(fù)雜、繁重的應(yīng)用

除此之外,常用的JavaScript基準(zhǔn)測試工具還有Mozilla發(fā)布的Kraken、蘋果的JetStream、以及Speedometer和Speed-Battle等。

責(zé)任編輯:武曉燕 來源: 活在信息時(shí)代
相關(guān)推薦

2023-05-06 07:24:22

程序員視頻算法

2022-09-04 19:43:05

程序員數(shù)據(jù)庫

2022-12-02 07:16:29

MySQL函數(shù)日期

2011-05-31 09:22:39

程序員

2011-05-26 10:04:30

程序員

2011-05-24 13:47:25

程序員

2011-05-31 09:37:53

程序員

2010-07-27 16:21:25

程序員

2011-06-02 09:02:36

程序員

2011-06-02 09:56:21

程序員團(tuán)隊(duì)精神

2021-05-22 10:01:45

PythonPython列表Python程序開發(fā)

2011-05-31 10:50:36

程序員

2022-11-09 07:18:18

驅(qū)動(dòng)測試BDD

2022-11-07 08:51:24

數(shù)據(jù)庫開發(fā)笛卡爾積

2022-07-20 00:03:10

Python列表字典推導(dǎo)

2019-01-30 14:14:16

LinuxUNIX操作系統(tǒng)

2015-11-30 11:01:34

前端程序員歷史

2015-12-04 09:33:15

程序員前端演進(jìn)史

2023-05-10 08:41:40

二叉樹遍歷算法

2014-06-09 16:43:11

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)