本文共 764 字,大约阅读时间需要 2 分钟。
pthread_self()与gettid()性能对比测试
在进行线程相关开发时,了解不同线程获取函数的性能特性至关重要。以下是关于pthread_self()和gettid()函数的性能测试分析。
测试机为Intel i7 860 2.8GHz,八核,各调用一千万次,二者效率基本一致。测试代码如下:
#include#include #include #include pid_t gettid(void){ return syscall(SYS_gettid);}int main(){ int i=0; printf("%u %lu", gettid(), pthread_self()); for(i=0; i<10000000; i++){ gettid(); // pthread_self(); }}
通过测试可以发现,gettid()的性能表现略优于pthread_self(),具体对比结果如下:
gettid()测试结果:
[root@test]# time ./a.out real 0m0.572suser 0m0.230ssys 0m0.342s
pthread_self()测试结果:
[root@test]# time ./a.out real 0m0.570suser 0m0.250ssys 0m0.321s
从测试结果来看,gettid()在执行时间上稍快,而pthread_self()的用户空间执行时间略低。这表明,在特定场景下,可以根据实际需求选择合适的线程获取方式。
转载地址:http://hpkfk.baihongyu.com/