我需要使用Valgrind来检测服务器应用程序中发生的任何内存访问冲突.服务器创建许多线程.我怀疑有一种竞争条件会导致服务器每1小时左右崩溃一次.我们使用Valgrind分析其内存使用情况,但服务器进程的速度急剧下降.服务器的速度下降太多,以至于几乎无法使用,也没有可能的竞赛条件.
无论如何,与我们的应用程序并行运行Valgrind,所以我们不会失去那么多的性能?
最佳答案值得注意的是,Valgrind在支持多线程程序的同时,如果你有多个核心可用,它们并不会实际并行运行程序的线程.它还以比本机OS调度程序更精细的粒度交错线程.这两个事实相结合可能使得具有竞争条件或其他并发异常的程序将表现不同.您可能需要尝试Helgrind,一种主要用于检测正确锁定规则的工具和drd,一种主要用于检测数据竞争的工具. 总结
以上是内存溢出为你收集整理的linux – 如何与我们的流程并行运行Valgrind,以便它的性能不会降低太多?全部内容,希望文章能够帮你解决linux – 如何与我们的流程并行运行Valgrind,以便它的性能不会降低太多?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)