【发布时间】:2010-10-25 05:59:32
【问题描述】:
我正在开发一个并行应用程序(C,pthread)。我跟踪了系统调用,因为在某些时候我的并行性能很差。我的跟踪显示我的程序多次调用mprotect()...足以显着减慢我的程序。
我确实分配了很多内存(使用malloc()),但只有合理数量的调用brk() 来增加堆大小。那么为什么会有这么多电话给mprotect() 呢?!
【问题讨论】:
-
如果你有 strace 跟踪你的程序怎么样(Linux)。
-
这正是我所做的。
标签: c multithreading parallel-processing system-calls