Exemple #1
0
	void doPerformance(const string &arg){
		if(arg == ARG_CLIENT){
			bool bRet = net_connect(g_IP, TEST_CONNECT_PORT);
			if(!bRet){ DEBUG_E("client 连接失败。"); }

			PackerPtr pPacker(new Packer(NULL));
			pPacker->setBuffer(g_TestContext_1.c_str(), g_TestContext_1.size());

			long times(PERFROMANCE_TIMES);
			while(times--){
				net_sendAll_C(pPacker);
				usleep(1);
			}

			sleep(100);
		}
		if(arg == ARG_SERVER){
			TimeCounter timeCount;

			bool bRet = net_listen(g_IP, TEST_LISTEN_PORT);
			if(!bRet){ DEBUG_E("server 监听失败。"); }

			PackerPtr pPacker;

			long times(PERFROMANCE_TIMES);

			bool bNotFull(true);

			timeCount.start();
			while(bRet && times>0){
				if(net_recv_S(pPacker)){
					if(g_TestContext_1 == string((char*)pPacker->getBuffer(), pPacker->getBufferSize())){
						cout << --times << endl; 
					}
					else{
						bNotFull = false;
						DEBUG_E("接收数据出错。" << string((char*)pPacker->getBuffer(), pPacker->getBufferSize()));
						break;
					}
					if(!bNotFull){
						cout << "有数据丢失" << endl;
					}
				}
			}
			timeCount.stop();

			cout << "发送[" << PERFROMANCE_TIMES << "] use time [" << timeCount.getSecTimeD() << "]s" << endl;
		}
	}
int main()
{
	RTree tree;
	
	for(int i = 0;i < DATA_NUMBER; ++i)
	{
		double min[2],max[2];
		min[0] = rand() % MAP_SIZE;
		max[0] = min[0];
		min[1] = rand() % MAP_SIZE;
		max[1] = min[1];
		tree.Insert(min, max, i);  //Insert (x,y,id)
	}
	outFileData(&tree);
	//tree.fileInsert("data.txt");
	//tree.printRec(tree.getMBR(tree.getRoot()));

	RTree::Iterator it;
	for( tree.GetFirst(it); 
       !tree.IsNull(it);
       tree.GetNext(it) )
	{
		int value = tree.GetAt(it);
    
		double x,y;
		it.GetCard(&x,&y);
		cout << "ID " << value << " : " << "(" << x << "," << y << ")" << endl;
	}

	Table1 table1;
	Table2 table2;
	Table3 table3;
	generateTable(&tree,&table1,&table2,&table3);
	printTable(&table1,&table2,&table3);
	outFileTable(&table1,&table2,&table3);

	TimeCounter tc;
	double CreateTime = 0.0;
	tc.StartTime();
	cout << QueryPlan(&tree,K_NEAREST) << endl;
	CreateTime = tc.EndTime();
	cout << "QueryPlan Time: " << CreateTime << " ms" << endl;

//	outFileRect(&tree);

	system("pause");
	return 0;
}
Exemple #3
0
void retrieval(char *indexPath,queryManager *queries,char *outputFile)
{
        IndexReader *theIndex = new IndexReader(indexPath);
        char blockInfoName[] = "BM25-02";
        theIndex -> loadBlockInfo(blockInfoName);

        ofstream F1;
        F1.open(outputFile);
        if(!F1) {cerr << "Error: file "<<outputFile<<" Could not be writ to"<<endl; return;}

        double totalEval=0;
        TimeCounter *timer = new TimeCounter();
        unsigned i;
        for(i=0;i<queries->num();i++)
        {
                timer->start();
                query* qry = queries -> getQuery(i);
                RetManager *reter = new RetManager(theIndex,qry);
                reter->retrieval(RetNum);
                timer->stop();
                cout<<qry->topicNum<<'\t'<<timer->getTrackTime()<<'\t'<<reter->getEvalCounter()<<endl;
                totalEval+=reter->getEvalCounter();
                reter->show(F1);
                //cout<<"\r retrieval topic "<<qry->topicNum<<flush;
                delete reter;
        }
        cout<<endl;
        cout<<"Used total time "<<timer->getTotalTime()<<"ms, average "<<timer->getAverageTime()<<"ms"<<" with "<<totalEval/queries->num()<<" evaluateions"<<endl;
        F1.close();
        delete(theIndex);
        delete(timer);
}
Exemple #4
0
void Voxelizer()
{
	std::cout << "Loading Model . . . ";
	// auto model = LoadObjModuleFromFile("data/sponza/sponza.obj");
	// auto model = LoadObjModuleFromFile("data/leather_chair/leather_chair.obj");
	auto model = LoadObjModuleFromFile("data/primitives/box.obj");
	std::cout << "DONE" << std::endl;

	std::cout << "Rasterizing . . . ";
	RasterData raster;
	raster.voxelSize = voxelSize;
	RasterizeModel(&raster, *model, Matrix44f(zero));
	std::cout << "DONE" << std::endl;

	std::cout << "Generating Sparce Map . . . ";
	SparceMap<SparceMapData, sparceMapSize> sparceMap;
	for (auto fragment : raster.fragments)
		SparceTreeInsertPoint(&sparceMap, sparceMapBox, fragment.position, sparceMapLevels);
	std::cout << "DONE" << std::endl;
	
	Vector3f center = Vector3f(zero);
	float dist = 10.0f;
	if (!raster.fragments.empty())
	{
		for (auto fragment : raster.fragments)
			center = center + fragment.position;
		center = center * (1.0f / raster.fragments.size());
		dist = 0.0f;
		for (auto fragment : raster.fragments)
			dist = Max(dist, Distance(center, fragment.position));
	}

	ProtoGL protoGL;
	protoGL.Initialize(ProtoGLDesc());

	OrbitalCamera camera(protoGL.GetCanvas());
	camera.SetPerspective(1.4f, 1.0f, sparceMapDimension * 2.0f);
	camera.SetCamera(center, Quaternionf(zero), dist * 2.0f);

	glEnable(GL_DEPTH_TEST);
	glEnable(GL_CULL_FACE);

	TimeCounter counter;
	while (protoGL.Update())
	{
		Time deltaTime = counter.GetElapsed();

		camera.Update(deltaTime);
		camera.CommitToGL();

		glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

		Time time = GetTime();
		Matrix44f objectTM = ToMatrix44(QuaternionAxisAngle(Vector3f(0.0f, 1.0f, 0.0f), time.AsFloat()*0.15f));
		
		raster.fragments.clear();
		SparceTreeClearData(&sparceMap);
		RasterizeModel(&raster, *model, objectTM);
		for (auto fragment : raster.fragments)
			SparceTreeInsertPoint(&sparceMap, sparceMapBox, fragment.position, sparceMapLevels);

		glPushMatrix();
		glMultMatrixf(&objectTM[0]);
		DrawModel(*model);
		glPopMatrix();
		DrawSparceMap(sparceMap, sparceMapBox);

		protoGL.Swap();
	}
}
Exemple #5
0
int main()
{
	int size;
	int laps = 10;
	long * timesPut = new long[laps];
	long * timesRemove = new long[laps];
	long averageTimePut = 0;
	long averageTimeRemove = 0;
	TimeCounter *stoper = new TimeCounter();
	AssociativeArrayTest *runner = new AssociativeArrayTest();
	

	cout << "Set problem size: ";
	cin >> size;
	
	
	cout << "TESTY" << endl;
	
	
	
	for(int i = 0; i < laps; i++)
	{
		if(!runner->Prepare(size))
		{
			cout << "Can't prepare runner." << endl;
			return 0;
		}
		stoper->Start();
		if(!runner->RunPut())
		{
			cout << "Runner can't finish." << endl;
			return 0;
		}
		stoper->Stop();
		timesPut[i] = stoper->GetElapsedTime();
		cout << "Put element->Lap " << (i+1) << endl;
		runner->ShowLists();
		stoper->Start();
		if(!runner->RunRemove())
		{
			cout << "Runner can't finish." << endl;
			return 0;
		}
		stoper->Stop();
		timesRemove[i] = stoper->GetElapsedTime();
		cout << "Remove element->Lap " << (i+1) << endl;
	}
	
	
	
	cout << endl << "TIMES PUT" << endl;
	for(int i = 0; i < laps; i++)
	{
		cout << "Lap " << (i+1) << " : " << setprecision(6) << fixed << timesPut[i]/1000000.0 << " s" << endl;
		averageTimePut += timesPut[i];
	}
	averageTimePut = averageTimePut/laps;
	cout << "Average time: " << setprecision(6) << fixed << averageTimePut / 1000000.0 << " s" << endl;
	
	cout << endl << "TIMES REMOVE" << endl;
	for(int i = 0; i < laps; i++)
	{
		cout << "Lap " << (i+1) << " : " << setprecision(6) << fixed << timesRemove[i]/1000000.0 << " s" << endl;
		averageTimeRemove += timesRemove[i];
	}
	averageTimeRemove = averageTimeRemove/laps;
	cout << "Average time: " << setprecision(6) << fixed << averageTimeRemove / 1000000.0 << " s" << endl;
}