蘋果開源Swift基準(zhǔn)測(cè)試套件
2016-02-15 17:53:16 來源:Sergio De Simone ,譯者 謝麗 評(píng)論:0 點(diǎn)擊:
蘋果開源了Swift基準(zhǔn)測(cè)試套件,在向Swift語言添加新特性時(shí),它是跟蹤Swift性能及捕獲性能衰退的一個(gè)重要部分。
Swift基準(zhǔn)測(cè)試套件由一個(gè)Swift源文件集合和若干Python腳本組成,前者實(shí)現(xiàn)了測(cè)試套件和基準(zhǔn)測(cè)試輔助功能,后者實(shí)現(xiàn)了用于指標(biāo)對(duì)比的工具。
蘋果建議在提交任何可能影響性能的變更之前運(yùn)行基準(zhǔn)測(cè)試套件。這可以通過在提交pull request之前向build-script傳遞--benchmark
標(biāo)識(shí)來實(shí)現(xiàn),Swift自動(dòng)構(gòu)建腳本會(huì)負(fù)責(zé)完成基本的工作,例如構(gòu)建兼容Swift的LLDB,針對(duì)特定平臺(tái)構(gòu)建,在構(gòu)建完成后執(zhí)行測(cè)試等等。這有助于捕獲潛在的性能衰退。為了使基準(zhǔn)測(cè)試結(jié)果有意義,需要首先在Swift的主分支上運(yùn)行一個(gè)基線基準(zhǔn)測(cè)試,然后再在開發(fā)分支上運(yùn)行基準(zhǔn)測(cè)試,后一次的運(yùn)行結(jié)果會(huì)自動(dòng)同前一次的運(yùn)行結(jié)果進(jìn)行對(duì)比。
默認(rèn)情況下,只有面向OS X平臺(tái)的Swift基準(zhǔn)測(cè)試會(huì)被編譯,但可以像下面這樣在命令行中指定其他平臺(tái):
$ swift/utils/build-script --ios --watchos --tvos
在使用基準(zhǔn)測(cè)試驅(qū)動(dòng)程序時(shí),開發(fā)人員可以控制每個(gè)測(cè)試樣本中的循環(huán)迭代次數(shù)以及每個(gè)測(cè)試中的測(cè)試樣本數(shù),例如:
$ ./Benchmark_O --num-iters=1 --num-samples=1
據(jù)蘋果工程師Luke Larson介紹,目前,Swift基準(zhǔn)測(cè)試套件包含75個(gè)基準(zhǔn)測(cè)試,但蘋果歡迎開發(fā)人員為新的基準(zhǔn)測(cè)試、輔助程序庫(kù)以及一般改進(jìn)作貢獻(xiàn)。Larson表示,蘋果對(duì)貢獻(xiàn)者有一個(gè)重要的要求,那就是必須遵循同Swift一樣的許可協(xié)議。因此,將基準(zhǔn)測(cè)試移植到其他許可協(xié)議下是不會(huì)被接受的。
目前,Swift基準(zhǔn)測(cè)試套件并沒有同最近發(fā)布的Swift持續(xù)集成系統(tǒng)整合,后者可以為OS X、iOS和x86_64 Ubuntu Linux等平臺(tái)構(gòu)建和運(yùn)行測(cè)試。按照J(rèn)enkins的說法,Swift CI系統(tǒng)旨在能夠支持更多來自Swift開發(fā)社區(qū)的平臺(tái)和體系結(jié)構(gòu)。Swift CI系統(tǒng)允許在pull request中運(yùn)行測(cè)試(比如在提交到主分支之前),并將失敗信息通知給負(fù)責(zé)的開發(fā)人員。不過,按照Larson的說法,Swift基準(zhǔn)測(cè)試套件將來會(huì)同Swift CI系統(tǒng)集成。
相關(guān)熱詞搜索:swift benchmarking suite 語言 & 開發(fā) Apple 開放源代碼 基準(zhǔn)點(diǎn)
上一篇:微軟宣布將推遲ASP.NET Core的發(fā)布日期
下一篇:Shane Hastie在敏捷之旅新加坡大會(huì)上作了題為“運(yùn)用敏捷思維應(yīng)對(duì)嚴(yán)峻

頻道總排行
- Cisco NetFlow v9為何無人問津?
- 技術(shù)專題:智能化運(yùn)維
- 開源代碼管理:如何安全地使用開源庫(kù)?
- Facebook架構(gòu)解讀
- IT運(yùn)維分析與海量日志搜索需要注意什么(1)
- 金山運(yùn)維肖力:如何將業(yè)務(wù)遷移到虛擬化環(huán)境并穩(wěn)定運(yùn)行(1)
- Apache Ignite(四):基于Ignite的分布式ID生成器
- CrazyEye,一款國(guó)人開源的堡壘機(jī)軟件(1)
- SDN時(shí)代的網(wǎng)絡(luò)管理系統(tǒng)會(huì)走向何方
- WOT2016吳兆松:Zabbix監(jiān)控自動(dòng)化的未來如何發(fā)展
頻道本月排行
- 8你消費(fèi)我買單——"漏洞"天使OneRASP...
- 7有了Jenkins,為什么還需要一個(gè)獨(dú)立...
- 6IT運(yùn)維分析與海量日志搜索需要注意什么(1)
- 5新浪微博王傳鵬:微博推薦架構(gòu)的演進(jìn)(1)
- 4史上最大機(jī)器學(xué)習(xí)數(shù)據(jù)集,雅虎對(duì)外開...
- 4雅虎開源可以提升流操作速度的DataSketches
- 4大眾點(diǎn)評(píng)高可用性系統(tǒng)運(yùn)維經(jīng)驗(yàn)分享
- 4云運(yùn)維如何選擇部署適合自身的IDC和...
- 4開源還是商用?十大云運(yùn)維監(jiān)控工具測(cè)...
- 4論開發(fā)與運(yùn)維沖突的根源、表現(xiàn)形式及...