خرید بک لینک

Vote count: 0

I have a multi-thread application. I can set number of threads to run on (simple data parallelism). When a try to run it with more then 4 threads I see significant drop in performance. Profiler shows a lot of time consumed in __lll_unlock_wake and __lll_lock_wait, called by _L_unlock_532 and _L_lock_926 respectively. I suspect locks on heap operations because every thread allocates and frees a lot of data.

The problem is, that any tested profiler (perf, google's pperf) does not show caller above _L_lock_926 so I caot check with of my function is causing this locks. I want to use some memory pooling technique to decrease number of heap operations, but I don't want to do it on every data collection. Is there any way to increase depth of call-stack for this function?

anticipating suggestions:

  • I've compiled code with `-fno-omit-frame-pointer'
  • google's tcmalloc doesn't seem to help
  • I caot use fork() because my app needs to run on windows too
asked 1 min ago

برچسب: نویسنده: استخدام کار تاريخ: جمعه 7 خرداد 1395 ساعت: 18:48

صفحه بندی