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; }
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); }
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(); } }
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; }