__sync_fetch_and_add(&count, 1)这个函数,比先mutex_lock然后count++再mutex_unlock要高效的多。原理可以看反汇编得到的源代码,count++不是原子操作,是3步操作,先把count的值从内存移到寄存器,然后在寄存器中实现自加,最后再从寄存器移到内存,所以消耗了性能。
本文共 204 字,大约阅读时间需要 1 分钟。
__sync_fetch_and_add(&count, 1)这个函数,比先mutex_lock然后count++再mutex_unlock要高效的多。原理可以看反汇编得到的源代码,count++不是原子操作,是3步操作,先把count的值从内存移到寄存器,然后在寄存器中实现自加,最后再从寄存器移到内存,所以消耗了性能。
转载于:https://blog.51cto.com/artinfo/1629358