信息:
- 我正在用 C/C++ 编码;
- 我有一个多线程程序,我想优化它,即减少每个函数消耗的cpu时间(由'clock_gettime'指定'CLOCK_THREAD_CPUTIME_ID'计算);
- 我的猜测是,通过使用“pthread_setaffinity_np”将每个线程绑定到其特定的 CPU,它可能符合我的目的,即避免线程迁移导致的成本;
- 初步测试表明我的猜测似乎是正确的。
问题:
- 线程迁移的成本是多少?将线程绑定到 CPU 真的有用吗?
- 是否有可能知道在进程执行期间发生了多少次线程迁移?如果可能的话,怎么做?