近日 Facebook 開源了開發工具 RacerD,來幫助開發者檢查并預防 Race Condition bug。
Race Condition 是程序在多線程多任務處理時,對有些共享資源進行操作(例如兩個進程同時修改同一個數據時),導致整個處理過程變得混亂甚至鎖死,引發 Bug。
Race Condition 查找起來非常困難,開發者很難徹查一個 app 中所有的潛在問題,因為 Race Condition 引發的 bug 并不持續,因此難以診斷。
Facebook 科學家 Peter O'Hearn 指出,RacerD 雖然不能保證找出全部 race condition ,但能查出大多數 race condition 導致的 bug。
Facebook 的 Android 應用開發團隊曾在迭代新聞源并發功能(可將 app 性能提升 5%)時使用 RacerD 找到來超過 1000 個 race condition bug。
目前 RacerD 兼容 Java,下一步 Facebook 將進一步開發使 RacerD 能夠兼容 C++。
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-10/147951.htm