- 論壇徽章:
- 0
|
我在測(cè)試jsoncpp解析json格式字符串需要的時(shí)間,但是解析結(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 ;
};
測(cè)試30次時(shí),有幾次出現(xiàn)結(jié)果為0的情況,對(duì)這一情況不是很明了,可否幫我分析下原因或指導(dǎo)下方法。 |
|