有一種軟件bug是開發(fā)復雜軟件項目開發(fā)者的噩夢,那就是代碼中的競態(tài)(Race Condition,也被譯作競爭條件)引發(fā)的軟件bug,近日Facebook開源了開發(fā)工具RacerD,來幫助開發(fā)者檢查并預防Race Condition bug。
Race Condition是程序在多線程多任務(wù)處理時,對有些共享資源進行操作(例如兩個進程同時修改同一個數(shù)據(jù)時),導致整個處理過程變得混亂甚至鎖死,引發(fā)BUG。
Race Condition查找起來非常困難,開發(fā)者很難徹查一個app中所有的潛在問題,因為Race Condition引發(fā)的bug并不持續(xù),因此難以診斷。
Facebook科學家Peter O‘Hearn在接受采訪時指出,RacerD能查出大多數(shù)race condition導致的bug,雖然不能保證全部。
據(jù)悉,F(xiàn)acebook的Android應(yīng)用開發(fā)團隊在迭代新聞源并發(fā)功能(可將app性能提升5%)時使用RacerD找到來超過1000個race condition bug。
目前RacerD兼容Java,下一步Facebook將進一步開發(fā)使RacerD能夠兼容C++。
新聞熱點
新聞爆料