在一个业务逻辑中有存在多线程同时读写一块内存的情况,在流程设计上加了一个线程锁。后来在测试性能上通过其他方式限制了读写取消了锁,发现性能提升比较小,反复测试才发现流程中有调用localtime函数,去掉后性能有明显提升。
/*获取系统当前时间(14位)*/
int gettimenow(char *ctime)
{
struct tm *tp= NULL;
time_t t;
time( &t );
tp = (struct tm *)localtime(&t);
sprintf( ctime,"%04d%02d%02d%02d%02d%02d",
tp->tm_year+1900,tp->tm_mon+1,tp->tm_mday,
tp->tm_hour,tp->tm_min,tp->tm_sec);
return ( 0 );
}