摘要:測試主要集中在圖形方面,這包括調用的時間開銷,圖形繪制的幀率,的運行百分占比。注意下面的時間單位都為毫秒,占比以單核為準表示一個核心滿載運行。占比越低幀數(shù)越高表示性能越好。
Ngui簡介
這是一個GUI的排版顯示引擎和跨平臺的GUI應用程序開發(fā)框架,基于NodeJS/OpenGL,這也是第一個在移動端Android/iOS融合NodeJS的前端GUI項目,至此JavaScript成為了真正意義上前后端通吃的語言。
Ngui的目標:在此基礎上開發(fā)GUI應用程序可擁有開發(fā)WEB應用般簡單與速度同時兼顧Native應用程序的性能與體驗。
開源跨平臺移動項目Ngui【簡介】
開源跨平臺移動項目Ngui【入門】
開源跨平臺移動項目Ngui【視圖與布局系統(tǒng)】
開源跨平臺移動項目Ngui【Action動作系統(tǒng)】
開源跨平臺移動項目Ngui【CSS樣式表規(guī)則及用法】
Ngui API 文檔
Benchmark距離項目第一個版本發(fā)布已有一段時間,雖然有做基準測試,但這段時間忙著找工作與外包的事情,一直沒有向大家報告測試結果。
總體測試結果還算比較滿意,基本達到當初開發(fā)這個庫的初衷,但也有不足的地方。
在iPhone6上創(chuàng)建10萬個Div并對相關屬性進行設置需要10秒以上的時間,但在Android上這個時間會減少到1/2,
因為Android使用的V8,而iOS上是使用的JSC并通過膠水層粘合到V8的API,所以JS性能不如Android。
對于2d繪圖GPU不是主要瓶頸,主要瓶頸集中在CPU,但可優(yōu)化的空間還很大。
測試主要集中在圖形方面,這包括JS調用API的時間開銷,圖形繪制的幀率,CPU的運行百分占比。對于文件IO以以及網絡方面的測試相對比較少,這里也不做陳述,因為庫本身是基于NodeJS基本沒有任何改動,相信大家對NodeJS的大名已如雷貫耳。
下面的數(shù)據(jù)是對iPhone6、 Google Nexus6 、iPad mini2的測試結果。
注意下面的時間單位都為毫秒,CPU占比以單核為準100%表示一個CPU核心滿載運行。
還有一點需要注意在屏幕沒有任何變化時,CPU占用一般為1%左右。
View在一個全屏Scroll視圖中創(chuàng)建10萬個Div視圖,然后滾動這個Scroll,這時查看CPU占比以及頻幕刷新率。
Div視圖是自動布局的,所以10萬個Div不會在屏幕中同時出現(xiàn)。這主要測試Dom的操作、視圖排版布局、以及繪圖性能。
設備 | Div數(shù)量 | 創(chuàng)建時間 | Fsp | CPU占比 |
---|---|---|---|---|
iPhone6 | 10000 | 1257 | 60 | 45% |
Nexus6 | 10000 | 670 | 60 | 48% |
iPad mini2 | 10000 | 1269 | 60 | 60% |
iPhone6 | 20000 | 2457 | 60 | 58% |
Nexus6 | 20000 | 1265 | 60 | 70% |
iPad mini2 | 20000 | 2460 | 60 | 90% |
iPhone6 | 50000 | 6162 | 48 | 97% |
Nexus6 | 50000 | 2987 | 39 | 97% |
iPad mini2 | 50000 | 5959 | 42 | 97% |
iPhone6 | 100000 | 12647 | 25 | 97% |
Nexus6 | 100000 | 5859 | 20 | 97% |
iPad mini2 | 100000 | 11964 | 22 | 97% |
這是iPhone6截圖:
下面是主要的測試源碼:
new GUIApplication({ multisample: 2 }).start(Action) ${ Array.from({length:100000}, ()=>{ var color = new Color(random(0, 255), random(0, 255), random(0, 255), 255); return ; }) }
在同一屏幕隨機創(chuàng)建4000個視圖,并隨機設置旋轉動作,這時查看CPU占用,與屏幕刷新率。這主要測試動作系統(tǒng)性能、同屏繪圖性能,以及設備的CPU與GPU的性能。CPU占比越低幀數(shù)越高表示性能越好。
可
設備 | 數(shù)量 | Fsp | CPU占比 |
---|---|---|---|
iPhone6 | 1000 | 60 | 54% |
Nexus6 | 1000 | 60 | 65% |
iPad mini2 | 1000 | 60 | 90% |
iPhone6 | 2000 | 60 | 98% |
Nexus6 | 2000 | 40 | 110% |
iPad mini2 | 2000 | 40 | 88% |
iPhone6 | 4000 | 30 | 104% |
Nexus6 | 4000 | 20 | 110% |
iPad mini2 | 4000 | 25 | 104% |
從數(shù)據(jù)上可以看出Nexus6的單核CPU性能不如iPhone6。
下面是iPhone6截圖:
CSS創(chuàng)建10萬個樣式表所消耗的時間。
設備 | 創(chuàng)建時間 |
---|---|
iPhone6 | 14699 |
Nexus6 | 10381 |
iPad mini2 | 14808 |
這里與Dom操作很類似時間有點長,這是因為對屬性值的解析是通過調用JS方法完成,如果這個過程在Native中,這個時間會減少很多,這也是以后的版本所需要解決的問題。
Storage下面分別是調用20萬次storage.set()、20萬次storage.get()、20萬次storage.del()消耗的時間。
設備 | set() | get() | del() |
---|---|---|---|
iPhone6 | 4381 | 3821 | 3547 |
Nexus6 | 7178 | 6539 | 6567 |
iPad mini2 | 4951 | 4256 | 4179 |
上面的數(shù)據(jù)只能做大體參考,對這種GUI框架的測試我現(xiàn)在還沒有找到比較好的標準。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/92274.html
摘要:簡介這是一個的排版顯示引擎和跨平臺的應用程序開發(fā)框架,基于,這也是第一個在移動端融合的前端項目,至此成為了真正意義上前后端通吃的語言。 Ngui簡介 這是一個GUI的排版顯示引擎和跨平臺的GUI應用程序開發(fā)框架,基于NodeJS/OpenGL,這也是第一個在移動端Android/iOS融合NodeJS的前端GUI項目,至此JavaScript成為了真正意義上前后端通吃的語言。 Ngui...
閱讀 3469·2019-08-30 13:15
閱讀 1405·2019-08-29 18:34
閱讀 832·2019-08-29 15:18
閱讀 3490·2019-08-29 11:21
閱讀 3252·2019-08-29 10:55
閱讀 3707·2019-08-26 10:36
閱讀 1875·2019-08-23 18:37
閱讀 1832·2019-08-23 16:57