我是靠谱客的博主 独特期待,最近开发中收集的这篇文章主要介绍mktime函数优化方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <time.h>
#include <stdio.h>
#include <sys/time.h>
void printnow(){
    static unsigned long long time=0;
    timeval tm; 
    gettimeofday(&tm,NULL);
    if(time !=0)        
    printf("cost time = %llun",tm.tv_sec*1000000+tm.tv_usec - time);
    time = tm.tv_sec*1000000+tm.tv_usec;
}


time_t GetTime(int year, int month, int day, int hour, int minute, int second)
{
    tm stTM;
    stTM.tm_sec = second;
    stTM.tm_min = minute;
    stTM.tm_hour = hour;
    stTM.tm_mday = day;
    stTM.tm_mon = month - 1;
    stTM.tm_year = year - 1900;


    return mktime(&stTM);
}
time_t GetTime_2(int year, int month, int day = 1, int hour = 0, int minute = 0, int second = 0)
{
    static __thread int iyear=0;
    static __thread int imonth=0;
//    static __thread int iday=0;
    static __thread unsigned long long time=0;
    if(year!=iyear||imonth!=month){//{||iday!=day){
        tm stTM;
        stTM.tm_sec = 0;//second;
        stTM.tm_min = 0;//minute;
        stTM.tm_hour = 0;//hour;
        stTM.tm_mday = 1;//day;
        stTM.tm_mon = month - 1;
        stTM.tm_year = year - 1900;
        time = mktime(&stTM);
        iyear = year;
        imonth = month;
  //      iday = day;
    }   
    return time+((((day - 1)*24+hour)*60+minute)*60)+second;
}


int main()
{
  int count = 10000;
    time_t m_tNow ;
    time_t time1,time2;
    m_tNow = time(0);
    tm stTM;
    localtime_r ( &m_tNow, &stTM );


    printf("loop count:%dn",count);
    printnow();


    for(int i = 0;i<count;i++){
        time1 = GetTime(stTM.tm_year + 1900,stTM.tm_mon + 1,stTM.tm_mday,stTM.tm_hour,stTM.tm_min,stTM.tm_sec);
    }
    printnow();
    for(int i =0;i<count;i++){
        time2 = GetTime_2(stTM.tm_year + 1900,stTM.tm_mon + 1,stTM.tm_mday,stTM.tm_hour,stTM.tm_min,stTM.tm_sec);
    }
    printnow();
    printf("GetTime() result:%lun",time1);
    printf("GetTime_2() result:%lun",time2);

 
  return 0;

}


运行结果

loop count:10000
cost time = 25699
cost time = 115

最后

以上就是独特期待为你收集整理的mktime函数优化方案的全部内容,希望文章能够帮你解决mktime函数优化方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部