亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: linux測量函數(shù)運行時間,單位為us,為什么有時候出現(xiàn)時間為0的情況 [打印本頁]

作者: 永動力    時間: 2013-11-25 12:44
標(biāo)題: linux測量函數(shù)運行時間,單位為us,為什么有時候出現(xiàn)時間為0的情況
我在測試jsoncpp解析json格式字符串需要的時間,但是解析結(jié)果中出現(xiàn)為0的情況讓不明白原因?
main.cpp文件:
const char* str0 = "{\"uploadid\": \"UP000000\",\"code\": 100,\"msg\": \"foo\",\"files\": \"bar\",\"numbers\":[{\"num\":1},{\"num\":2},{\"num\":3}]}";
const char* str = str0 ;
Json::Features feature;
const int TEST_TIMES = atoi(argv[1]) ;
long *take = new  long[TEST_TIMES];
long sum=0;
fstream  tmp;
string filename= string("test_"+string(argv[1])+".txt" ;
tmp.open(filename.c_str(),ios::app|ios:ut);
for ( int i=0; i<TEST_TIMES; ++i)
{
     take[i]=-1;
     {
         Timedelt  check(take[i]);
         //usleep(500);
         Json::Reader reader(feature);
         Json::Value root ;
         if( !reader.parse(str,root,true) ){
             std::cout<<"parse error"<<endl;
             return 0;
         }   
         int num_size = root["numbers"].size();
         std::cout<<i<<"->"<<endl;
         for ( int j=0; j< num_size; ++j)
         {
             //root["numbers"][i]["num"].asInt();
             std::cout<< "num: " <<  root["numbers"][j]["num"].asInt()<<endl;
         }   
     }
     sum += take[i];
     tmp<<take[i]<<endl;
}
printf("it average take time %lu us\n",sum/TEST_TIMES);
tmp<<"average:"<<sum/TEST_TIMES ;
tmp.close();
delete []take ;

其中Timedelt類為:
class Timedelt {
public:
        Timedelt(  long  &delt ):diff(delt){
        gettimeofday(&start,NULL);
}   
        ~Timedelt(){
        gettimeofday(&end,NULL);
        diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
}           
private:   
        struct timeval start ,end ;
         long   &diff ;
};   
測試30次時,有幾次出現(xiàn)結(jié)果為0的情況,對這一情況不是很明了,可否幫我分析下原因或指導(dǎo)下方法。         




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2