我需要使用Valgrind来检测服务器应用程序中发生的任何内存访问冲突.服务器创建许多线程.我怀疑有一种竞争条件会导致服务器每1小时左右崩溃一次.我们使用Valgrind分析其内存使用情况,但服务器进程的速度急剧下降.服务器的速度下降太多,以至于几乎无法使用,也没有可能的竞赛条件.
无论如何,与我们的应用程序并行运行Valgrind,所以我们不会失去那么多的性能?
最佳答案
值得注意的是,Valgrind在支持多线程程序的同时,如果你有多个核心可用,它们并不会实际并行运行程序的线程.它还以比本机OS调度程序更精细的粒度交错线程.这两个事实相结合可能使得具有竞争条件或其他并发异常的程序将表现不同.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。