什么是 Benchmarks?
什么是 Benchmarks?
《工欲善其事,必先利其器》
大家好,我是vk,好久不見。國慶回來了,感覺有好多功課又落下了。。。那么就以一篇小文章開始,提前回歸我們的工作日常吧!
起初,我也不知道 benchmark 這個文件是做什么的。抱著求知的心態打開翻譯軟件,翻譯過來是 “基準”、“檢測” 的意思。這時候我有了點思路,結合文件內的程序,大概能猜出來這是一個存放 測試標準和性能程序 的文件夾。
一、benchmark 能做什么?
在學習 vue 源碼時,項目里就存在 benchmark 文件夾:
打開 big-table 文件夾的 index.html 文件:
直到看見 ROWS = 1000 這個變量,我才明白,這的確是用于測試性能的程序。言外之意,benchmark 的目的主要有兩種,一是用大量的數據驗證性能(例如表格,svg,列表等);另一個是獲得一些基準數據,從而可以與本軟件的其他版本或其他同類軟件進行比較。
無獨有偶,其實并非只有 vue 才會進行 benchmarks 測試。相反,benchmark 測試不一定會發生在每個版本的開發期間。有可能僅會在有較大改動的時候才會進行一次 benchmark 測試。
 (圖片來自稀土掘金)
根據上圖可知,這里渲染了大量的帶狀態的組件實例,這是 v2 和 v3 針對以前的 object.defineProperty 和 現在的 Proxy 這兩個不同的 API 進行的,屬于 benchmarks 測試。
這里測試得出的結果是,v3 擁有更加優越的性能和基準數據,這是質的提升。
二、benchmarks 和 單元測試一樣嗎?
答案肯定是不一樣的。兩種測試方式的目的和階段不同。
- 單元測試發生在開發階段,當一個新功能、新程序開發好,或者對原有程序進行了改動之后,需要通過單元測試來驗證其正確性。單元測試可能會發生多次,每個大小版本可能都要進行,有時候還會進行多次。
- benchmark 的目的主要有兩種,一是驗證性能,另一個是獲得一些基準數據,從而可以與本軟件的其他版本或其他同類軟件進行比較。通常不使用 benchmark 做正確性驗證。benchmark 測試不一定會發生在每個版本的開發期間。有可能僅會在有較大改動的時候才會進行一次 benchmark 測試。因此頻率相對單元測試來說要低很多。
例如上面 vue 的性能測試,正是單元測試做不到的。
參考文章:
- github很多項目中有 benchmarks這個目錄,到底是干什么的?
最后,感謝你的閱讀,愿你的未來一片光明。
總結
以上是生活随笔為你收集整理的什么是 Benchmarks?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: idea手工添加jar依赖包
- 下一篇: RecyclerView使用探索1--了
