近日 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