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