亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c_shm_merge_t.cpp

?? 一個基于HP機器的共享內存的實現, 很使用,大型系統,資料管理非常有用,只要將資料用sql語句配置好,裝載共享內存即可,是一個已經在用的大型系統的共享內存程序,非常有價值.
?? CPP
字號:
#include <share_mem/c_shm.h>
#include <share_mem/c_shm_merge.h>
#include <collect/global.h>
#include <cc++/thread.h>

int itemComp1( const void *arg1, const void *arg2 )
{
   return strcmp( ((SHM_MERGE_LIST*)arg1)->main, ((SHM_MERGE_LIST*)arg2)->main);
}

int itemComp2( const void *arg1, const void *arg2 )
{
   return strcmp( (char*)arg1, (char*)arg2 );
}

int main(int argc, char *argv[])
{
	if( argc < 2 )
	{
		printf("Usage: %s option \n", argc );
		printf(	"測試添加數據 c_shm_merge_t 1 share_area_id mem_name \n" 
			"測試顯示數據 c_shm_merge_t 2 share_area_id mem_name acc_nbr \n" 
			"測試顯示數據 c_shm_merge_t 3 share_area_id mem_name \n");
		exit(1);	
	}

	int opt = atoi(argv[1]);
	dbConnect( "DB_CONFIG_COLLECT_IBAS" );
	c_shm m_serv(atoi(argv[2]));
	c_shm_mem* shm_mem;
	c_shm_merge* p_shm_merge;

	int test = 0;
	double dbltest = 0;
	char cvalue1[200],cvalue2[200],cvalue3[200];
	int ival1, ival2, ival3;
	char temp1[6500000][20], temp2[6500000][4], temp3[6500000][4];
	int count, i, j, returntmp;

	char add_record[6500000][28];
	
	struct timeval first, second, lapsed;
	int record_count;

	void* p_field;
	void* pe1;
	int seq = 0;
	char* c_find;

	SHM_MERGE_LIST shm_find;
	SHM_MERGE_LIST* p_find;
	int item_size = sizeof(SHM_MERGE_LIST);
	SHM_MERGE_LIST_ITEM* p_list;

	switch(opt)
	{
		case 1:
			//添加數據
			m_serv.getshm();
			p_shm_merge = (c_shm_merge*)m_serv.get_mem(argv[3]);
			cout<<"get ok!!!!"<<endl;
			//p_shm_merge = (c_shm_merge*)shm_mem;
			p_shm_merge->setMainKey(0);
			p_shm_merge->setItemKey(1);
			p_shm_merge->setItem(2);
			
			g_statement.setSQLString("select acc_nbr,acct_item_type_id,amount from ibasuser.acct_item where rownum < 300" );
			//where rownum < 30 where acc_nbr = '83489853' or acc_nbr = '36243782'
			g_statement.execute();
			i = 0;
			count = 0;
			SysTime::getTimeOfDay( &first ) ;
			while( g_statement>>temp1[count]>>ival2>>ival1 )
			{
				memcpy(temp3[count], &ival1, sizeof(int));
				memcpy(temp2[count], &ival2, sizeof(int));
				//cout<<temp1[count]<<"|"<<*((int*)(temp2[count]))<<"|"<<ival1<<endl;

				//strcpy( add_record[count], temp1[count]);
				//memcpy( &(add_record[count][20]), &ival2, 4);
				//memcpy( &(add_record[count][24]), &ival1, 4);
				//cout<<add_record[count]<<"\t"<<*(int*)&(add_record[count][20])<<"\t"<<*(int*)&(add_record[count][24])<<endl;
				count ++;
			}
			cout<<"load data ok!"<<endl;
			SysTime::getTimeOfDay( &second ) ;
			if (first.tv_usec > second.tv_usec) 
			{
				second.tv_usec += 1000000;
				second.tv_sec--;
		    	}
			lapsed.tv_usec = second.tv_usec - first.tv_usec;
			lapsed.tv_sec  = second.tv_sec  - first.tv_sec;			
			cout<<"發生秒數:"<<lapsed.tv_sec<<endl;
			cout<<"發生微秒數:"<<lapsed.tv_usec<<endl;


			system("date");
			SysTime::getTimeOfDay( &first ) ;
			for( j = 0; j < 1; j ++ )
			{
				for ( i = 0 ; i < count ; i ++ )
				{
					p_shm_merge->SetData(0, temp1[i]);
					p_shm_merge->SetData(1, temp2[i]);
					p_shm_merge->SetData(2, temp3[i]);
					if( p_shm_merge->appendElement(  ) < 0 )
					//if( p_shm_merge->appendElement( add_record[i] ) < 0 )
					{
						cout<<"load count error1:"<<i<<endl;
						return -1;
					}					
				}
				system("date");
			}
			

			cout<<"load count:"<<i<<endl;
			/*
			while( g_statement>>cvalue1 )
			{
				p_shm_merge->SetData(i, cvalue1);
				i ++;
				if( i >= p_shm_merge->p_share_mem_info->field_count )
				{
					count ++;
					i = 0;
					if( p_shm_merge->appendElement(  ) < 0 )
					{
						cout<<"load count error1:"<<count<<endl;
						return -1;
					}
				}				
			}
			if ( i > 0 )
			{
				count ++;
				if( p_shm_merge->appendElement(  ) < 0 )
				{
					cout<<"load count error2:"<<count<<endl;
					return -1;
				}
			}
			
			cout<<"load count:"<<count<<endl;			
			*/
			SysTime::getTimeOfDay( &second ) ;
			if (first.tv_usec > second.tv_usec) 
			{
				second.tv_usec += 1000000;
				second.tv_sec--;
		    	}
			lapsed.tv_usec = second.tv_usec - first.tv_usec;
			lapsed.tv_sec  = second.tv_sec  - first.tv_sec;
			
			cout<<"添加數據 發生秒數:"<<lapsed.tv_sec<<endl;
			cout<<"發生微秒數:"<<lapsed.tv_usec<<endl;
/*
			cout<<"display item list:"<<endl;
			for ( j = 0 ; j < 60 ; j ++ )
			{
				cout<<j<<"\t"
					<<p_shm_merge->p_merge_addition->p_merge_list_item[j].key<<"\t"					
					<<p_shm_merge->p_merge_addition->p_merge_list_item[j].fee<<"\t"
					<<p_shm_merge->p_merge_addition->p_merge_list_item[j].next_pos<<endl;
			}
			cout<<"display accr list 0 :"<<endl;
			for ( j = 0 ; j < 20 ; j ++ )
			{
				cout<<j<<"\t"
					<<p_shm_merge->p_merge_item[0]->p_merge_list[j].main<<"\t"					
					<<p_shm_merge->p_merge_item[0]->p_merge_list[j].item_pos<<endl;
			}
*/
			/*cout<<"display accr list 1:"<<endl;
			for ( j = 0 ; j < 20 ; j ++ )
			{
				cout<<j<<"\t"
					<<p_shm_merge->p_merge_item[1]->p_merge_list[j].main<<"\t"					
					<<p_shm_merge->p_merge_item[1]->p_merge_list[j].item_pos<<endl;
			}*/
			cout<<"display record_count"<<endl;
			for( i = 0 ; i < 10; i ++ )
				cout<<i<<":"<<p_shm_merge->p_merge_item[i]->p_merge_info->add_record_count<<"\t"
					<<p_shm_merge->p_merge_item[i]->p_merge_info->record_count<<"\t"
					<<p_shm_merge->p_merge_item[i]->p_merge_info->unsort_find_count<<endl;
			break;
		case 2:
			//顯示數據
			m_serv.getshm();
			p_shm_merge = (c_shm_merge*)m_serv.get_mem(argv[3]);
			cout<<"get ok!!!!"<<endl;
			//p_shm_merge = (c_shm_merge*)shm_mem;
			p_shm_merge->setMainKey(0);
			p_shm_merge->setItemKey(1);
			p_shm_merge->setItem(2);

			SysTime::getTimeOfDay( &first ) ;
			//p_shm_merge->displayElement( "33039162" );
			//p_shm_merge->displayElement( argv[4] );
			
			p_shm_merge->getMainElement( argv[4] );
			p_list = p_shm_merge->getNext();
			while( p_list != NULL )
			{
				for(i=0; i<p_list->ele_count; i++)
				{
					printf("key:%d, fee:%d, nextpos:%d\n", p_list->acctFee[i].key, p_list->acctFee[i].fee, p_list->next_pos);
				}
				p_list = p_shm_merge->getNext();
			}

			SysTime::getTimeOfDay( &second ) ;
			if (first.tv_usec > second.tv_usec) 
			{
				second.tv_usec += 1000000;
				second.tv_sec--;
		    	}
			lapsed.tv_usec = second.tv_usec - first.tv_usec;
			lapsed.tv_sec  = second.tv_sec  - first.tv_sec;
			
			cout<<"顯示數據 發生秒數:"<<lapsed.tv_sec<<endl;
			cout<<"發生微秒數:"<<lapsed.tv_usec<<endl;
			break;
		case 3:
			//測試速度
			m_serv.getshm();
			p_shm_merge = (c_shm_merge*)m_serv.get_mem(argv[3]);
			cout<<"get ok!!!!"<<endl;
			//p_shm_merge = (c_shm_merge*)shm_mem;
			p_shm_merge->setMainKey(0);
			p_shm_merge->setItemKey(1);
			p_shm_merge->setItem(2);

			g_statement.setSQLString("select acc_nbr,acct_item_type_id,amount from ibasuser.acct_item  ");
			//where rownum < 20 where acc_nbr = '83489853' or acc_nbr = '36243782'
			g_statement.execute();
			i = 0;
			count = 0;
			SysTime::getTimeOfDay( &first ) ;
			while( g_statement>>temp1[count]>>ival2>>ival1 )
			{
				memcpy(temp3[count], &ival1, sizeof(int));
				memcpy(temp2[count], &ival2, sizeof(int));
				//cout<<temp1[count]<<"|"<<itemp2[count]<<"|"<<ival1<<endl;
				count ++;
			}
			cout<<"load data ok!"<<endl;
			SysTime::getTimeOfDay( &second ) ;
			if (first.tv_usec > second.tv_usec) 
			{
				second.tv_usec += 1000000;
				second.tv_sec--;
		    	}
			lapsed.tv_usec = second.tv_usec - first.tv_usec;
			lapsed.tv_sec  = second.tv_sec  - first.tv_sec;			
			cout<<"發生秒數:"<<lapsed.tv_sec<<endl;
			cout<<"發生微秒數:"<<lapsed.tv_usec<<endl;
			
			//count = 6234484;
			system("date");
			SysTime::getTimeOfDay( &first ) ;
			
			for( j = 0; j < 5; j ++ )
			{
				//memcpy( shm_find.main, "36243781", MAX_MAIN_LENGTH);
				for ( i = 0 ; i < count ; i ++ )
				{										
					seq = p_shm_merge->getMergeItemSeq( temp1[i] );
					p_find = p_shm_merge->p_merge_item[seq]->find( temp1[i] );
					//p_find = p_shm_merge->p_merge_item[0]->find( temp1[i] );
					//p_find = (SHM_MERGE_LIST*)bsearch(&shm_find, p_shm_merge->p_merge_item[8]->p_merge_list, p_shm_merge->p_merge_item[0]->p_merge_info->record_count, item_size, itemComp1);
					
					if( p_find != NULL )
					{

						record_count++;
					}
					//if( i%1000000 == 0 )
					//{
					//	system("date");
					//}
				}
				system("date");
			}
			cout<<"find:"<<record_count<<endl;
			SysTime::getTimeOfDay( &second ) ;
			if (first.tv_usec > second.tv_usec) 
			{
				second.tv_usec += 1000000;
				second.tv_sec--;
		    	}
			lapsed.tv_usec = second.tv_usec - first.tv_usec;
			lapsed.tv_sec  = second.tv_sec  - first.tv_sec;			
			cout<<"發生秒數:"<<lapsed.tv_sec<<endl;
			cout<<"發生微秒數:"<<lapsed.tv_usec<<endl;
			

			for ( i = 0; i < p_shm_merge->p_merge_item[0]->p_merge_info->record_count; i ++ )
			{
				strcpy( temp3[i], p_shm_merge->p_merge_item[8]->p_merge_list[i].main );
			}


			SysTime::getTimeOfDay( &first ) ;
			for( j = 0; j < 5; j ++ )
			{
				//memcpy( shm_find.main, "36243781", MAX_MAIN_LENGTH);
				for ( i = 0 ; i < count ; i ++ )
				{										
					//seq = p_shm_merge->getMergeItemSeq( temp1[i] );
					//p_find = p_shm_merge->p_merge_item[0]->find( temp1[5] );
					c_find = (char*)bsearch(&(temp1[i]), temp3, p_shm_merge->p_merge_item[0]->p_merge_info->record_count, 30, itemComp2);
					if( c_find != NULL )
					{
						record_count++;
					}
					//if( i%1000000 == 0 )
					//{
					//	system("date");
					//}
				}
				system("date");
			}
			cout<<"find:"<<record_count<<endl;
			SysTime::getTimeOfDay( &second ) ;
			if (first.tv_usec > second.tv_usec) 
			{
				second.tv_usec += 1000000;
				second.tv_sec--;
		    	}
			lapsed.tv_usec = second.tv_usec - first.tv_usec;
			lapsed.tv_sec  = second.tv_sec  - first.tv_sec;			
			cout<<"發生秒數:"<<lapsed.tv_sec<<endl;
			cout<<"發生微秒數:"<<lapsed.tv_usec<<endl;

			cout<<"test ok:"<<i<<endl;

			break;
		default:
			printf("沒有這個操作符\n");
			break;
	}

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类综合日韩欧美亚洲| 久久久精品蜜桃| 91女神在线视频| 国产成人综合网站| 韩国女主播成人在线| 免费高清视频精品| 免费观看成人鲁鲁鲁鲁鲁视频| 午夜一区二区三区在线观看| 午夜久久久影院| 午夜日韩在线观看| 麻豆91精品91久久久的内涵| 卡一卡二国产精品 | 在线免费观看视频一区| 成人高清在线视频| 色综合天天综合网国产成人综合天 | 粉嫩嫩av羞羞动漫久久久| 国产一区二三区| 国产91在线观看| 91色porny| 欧美日韩国产美| 精品久久久久久久一区二区蜜臀| 久久久久久**毛片大全| 亚洲欧美一区二区三区久本道91| 亚洲影院在线观看| 另类中文字幕网| av一本久道久久综合久久鬼色| 91免费国产视频网站| 欧美私人免费视频| 精品粉嫩超白一线天av| 国产精品二三区| 亚洲一区二区中文在线| 韩国精品在线观看| 91色九色蝌蚪| 欧美精品一区二区三区高清aⅴ | 成人美女在线观看| 欧美自拍偷拍午夜视频| 欧美成人一区二区三区片免费| 国产女主播在线一区二区| 一区二区理论电影在线观看| 久久成人久久爱| 91猫先生在线| 综合激情网...| 久久疯狂做爰流白浆xx| 91日韩一区二区三区| 欧美mv日韩mv| 亚洲一本大道在线| 成人午夜在线免费| 欧美成人aa大片| 一区二区三区在线免费| 国产精品一区专区| 91精品国产一区二区三区香蕉| 国产日产欧美一区二区三区| 日韩影院免费视频| 一本大道久久a久久综合| 26uuuu精品一区二区| 午夜激情久久久| 91无套直看片红桃| 国产精品入口麻豆九色| 老司机精品视频在线| 欧美精品精品一区| 一区二区三区四区在线| 国产高清不卡二三区| 精品国产免费人成在线观看| 亚洲国产精品麻豆| 91成人在线免费观看| 国产精品大尺度| 国产高清成人在线| 欧美激情资源网| 国产高清视频一区| 国产精品私人影院| 国产精品亚洲午夜一区二区三区| 日韩欧美在线不卡| 蜜桃av一区二区| 欧美大片在线观看一区二区| 免费在线看成人av| 欧美哺乳videos| 久久99这里只有精品| 欧美大片在线观看| 国产在线视视频有精品| 亚洲精品在线电影| 成人自拍视频在线观看| 国产精品久久久久久亚洲毛片| 国产成人无遮挡在线视频| 久久久久国产精品麻豆ai换脸| 国产在线国偷精品免费看| 最新国产精品久久精品| av激情成人网| 亚洲麻豆国产自偷在线| 欧美性色欧美a在线播放| 亚洲成av人片一区二区梦乃| 日韩一区二区免费电影| 激情综合一区二区三区| 国产女人18水真多18精品一级做| 成人一区二区三区视频在线观看| 亚洲欧洲综合另类| 777午夜精品免费视频| 美女mm1313爽爽久久久蜜臀| 久久精品在线观看| 99热精品一区二区| 五月激情丁香一区二区三区| 91精品国产综合久久久久| 久久精品72免费观看| 中文字幕不卡在线播放| 日本乱人伦一区| 老色鬼精品视频在线观看播放| 国产农村妇女毛片精品久久麻豆| 91在线小视频| 日本欧美肥老太交大片| 国产精品久久久久四虎| 欧美肥大bbwbbw高潮| 国产成人精品网址| 亚洲va欧美va天堂v国产综合| 欧美va在线播放| 99久久婷婷国产综合精品电影| 亚洲高清免费在线| 日本一区二区三区在线观看| 欧美色综合影院| 国产风韵犹存在线视精品| 亚洲福利电影网| 中文字幕乱码亚洲精品一区| 欧美夫妻性生活| 91免费视频大全| 国产精品影音先锋| 五月婷婷色综合| 亚洲欧美激情在线| 国产欧美一区二区三区沐欲| 欧美人体做爰大胆视频| 不卡一二三区首页| 国产精品资源网| 免费观看一级欧美片| 午夜日韩在线电影| 亚洲精品成人少妇| 国产精品国产三级国产aⅴ无密码| 69久久夜色精品国产69蝌蚪网| av成人免费在线| 国产成人综合在线| 国产精品一区二区视频| 首页国产欧美日韩丝袜| 一区二区不卡在线播放| 国产精品久久久一本精品| 26uuu欧美| 精品久久久久久亚洲综合网| 7777精品伊人久久久大香线蕉最新版 | 宅男噜噜噜66一区二区66| 99久久国产免费看| 成人av影视在线观看| 国产精品一区二区三区乱码| 久久国产剧场电影| 婷婷亚洲久悠悠色悠在线播放| 一区二区三区欧美| 亚洲综合av网| 亚洲国产精品视频| 丝袜美腿亚洲色图| 视频一区二区三区入口| 日本午夜精品一区二区三区电影| 一区二区三区日韩精品| 亚洲女爱视频在线| 亚洲欧美另类在线| 午夜伦理一区二区| 久久66热re国产| 久久国产免费看| 成人综合婷婷国产精品久久 | 亚洲第一久久影院| 亚洲风情在线资源站| 爽爽淫人综合网网站| 日本在线播放一区二区三区| 美女精品自拍一二三四| 国产精品一级片| 成人精品视频网站| 91小视频免费观看| 欧美日韩亚洲高清一区二区| 欧美一区二区三区播放老司机| 欧美大黄免费观看| 中文字幕不卡在线播放| 一区二区视频在线| 老色鬼精品视频在线观看播放| 国产精品一区二区久激情瑜伽| 99精品视频在线播放观看| 欧美日韩aaaaaa| 久久欧美一区二区| 亚洲免费在线观看| 日本不卡免费在线视频| 国产精品一区久久久久| 一本色道久久加勒比精品| 91精品国产欧美一区二区成人| 国产日韩av一区| 午夜视频一区在线观看| jvid福利写真一区二区三区| 欧美绝品在线观看成人午夜影视| 日韩视频在线你懂得| 亚洲免费在线观看| 黄色精品一二区| 色视频成人在线观看免| 精品乱码亚洲一区二区不卡| 亚洲精品中文在线| 韩国精品久久久| 欧美日韩另类一区| 国产精品毛片大码女人| 蜜桃av一区二区| 欧美在线一区二区|