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