资源描述:
《BerkeleyDB和eXtremeDB性能在LINUX下的比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、BerkeleyDB和eXtremeDB性能在LINUX下的比较1、BerkeleyDB测试源程序:#include#include#include#include#include#ifdef_WIN32externintgetopt(int,char*const*,constchar*);#else#include#endif#include"db.h"externvoid__os_clock__P((DB_ENV*,u_int32_t*,u_int3
2、2_t*));voidusage__P((void));structdb_time{ u_int32_tsecs,usecs;};structdb_time start_time,end_time;u_int32_t pagesize=32*1024;u_int bulkbufsize=4*1024*1024;u_int logbufsize=8*1024*1024;u_int cachesize=32*1024*1024;u_int datasize=32;u_int keysize=8;u_int numi
3、tems=0;FILE *fp;char *progname;voidop_ds(u_int,int);voidop_ds_bulk(u_int,u_int*);voidop_tds(u_int,int,u_int32_t);voidres(char*,u_int);voidres(char*msg,u_intops){ doubleelapsed; structdb_timev; v.secs=end_time.secs-start_time.secs; v.usecs=end_time.usecs-start_time.usecs; if(star
4、t_time.usecs>end_time.usecs){ v.secs--; v.usecs+=1000000; } elapsed=v.secs+v.usecs/1e6; printf("%stelapsedtime:%fseconds:%gkey/datapairspersec", msg,elapsed,ops/elapsed);}voidop_ds(u_intops,intupdate){ char*letters="abcdefghijklmnopqrstuvwxuz"; DB*dbp; DBTkey,data; char*keybuf,*da
5、tabuf; DB_MPOOL_STAT *gsp; (void)remove("a"); assert((keybuf=malloc(keysize))!=NULL); assert((databuf=malloc(datasize))!=NULL); memset(&key,0,sizeof(key)); memset(&data,0,sizeof(data)); key.data=keybuf; key.size=keysize; memset(keybuf,'a',keysize); data.data=databuf; data.size=datasize; mem
6、set(databuf,'b',datasize); assert(db_create(&dbp,NULL,0)==0); dbp->set_errfile(dbp,stderr); assert(dbp->set_pagesize(dbp,pagesize)==0); assert(dbp->open(dbp,NULL,NULL,NULL,DB_BTREE,DB_CREATE,0666)==0); dbp->dbenv->memp_stat(dbp->dbenv,&gsp,NULL,DB_STAT_CLEAR); if(update){ __os_cloc
7、k(NULL,&start_time.secs,&start_time.usecs); for(;ops>0;--ops){ keybuf[(ops%keysize)]=letters[(ops%26)]; assert(dbp->put(dbp,NULL,&key,&data,0)==0); } __os_clock(NULL,&end_time.secs,&end_time.usecs); }else{ assert(dbp->put(dbp,NULL,&key,&data,0)==