
Facebook(Facebook)於上周五(10/20)宣布,開(kāi)源旗下并行程式設計除錯工具RacerD,協(xié)助開(kāi)發(fā)者縮短并行程式設計(Concurrent Programming)除錯的時(shí)間,以及避免并行程式中的競爭情況(Race Condition)。
并行程式設計是指,在系統中有至少2個(gè)以上的運算同時(shí)運作,此時(shí)則容易發(fā)生資料競爭(Data Race)的情況,且因為人工難以發(fā)現競爭情況的發(fā)生,造成開(kāi)發(fā)者往往得費時(shí)除錯,而RacerD工具則可以協(xié)助開(kāi)發(fā)者偵測與避免Java程式中的資料競爭,及檢察并行程式設計的錯誤。
RacerD工具是以Infer靜態(tài)分析平臺為基礎,采用程式分析框架Infer.AI來(lái)偵測程式錯誤,且RacerD工具透過(guò)程式碼編譯時(shí)檢查程式碼,并產(chǎn)生系統中可能發(fā)生競爭情況的報告,提供給開(kāi)發(fā)者。Facebook聲稱(chēng),RacerD能夠用低於15分鐘的時(shí)間檢查80行以上的程式碼,且能找出程式碼中大部分競爭情況的錯誤。
Facebook也以自身的經(jīng)驗說(shuō)明RacerD帶來(lái)的效益,Facebook的Android團隊為行動(dòng)App的新聞提要(News Feed)建置并行程式,運用RacerD抓到1,000個(gè)以上競爭情況的程式錯誤,為Facebook的行動(dòng)App改進(jìn)了5%的效能。
此外,目前RacerD工具支援Java,Facebook也計畫(huà)未來(lái)RacerD將支援C++。