⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clibench.cpp

📁 一个硬件测试工具的源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	{
		_ftime (&etime);
	}
	
	if (dhryTest)
	{	
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];
		int i=0;
		_ftime (&atime);
		while (i<nOfThreads)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoDhry,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				++i;
			}
			Sleep(10);
		}
		
		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm));
	
		result=langeTests*4000000*nOfThreads;//result+threadResult[i];
		result=unsigned long (result/dauer);
		
		marks[0][zaehler][0][0]='d';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;

	}

	if (whetTest)
	{	
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];
		int i=0;
		_ftime(&atime);
		while (i<nOfThreads)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoWhet,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				++i;
			}
			Sleep(10);
		}
		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm))/100;

		result=langeTests*20000*nOfThreads;
		
		result=unsigned long(result/dauer);
		marks[0][zaehler][0][0]='w';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;
	}

	if (queenTest)
	{
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];
		int i=0;

		_ftime (&atime);
		while (i<nOfThreads)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoQueenTest,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				++i;
			}
			Sleep(10);
		}
		
		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm));
	
		result=langeTests*10000*nOfThreads;
		result=unsigned long (1000*result/dauer);

		marks[0][zaehler][0][0]='q';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;
	}

	if (matrTest)
	{
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];

		_ftime(&atime);

		int i=0;
		while (i<nOfThreads)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoMatr,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				
				++i;
			}
			Sleep(10);
		}
	
		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm));
	
		result=unsigned long(langeTests*(27878400/dauer)*4*nOfThreads);

		marks[0][zaehler][0][0]='c';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;
	}

	if (numTest)
	{
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];
		int i=0;
		_ftime(&atime);
		while (i<nOfThreads)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoNumber,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				
				++i;
			}
			Sleep(10);
		}

		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm));
	
		result=unsigned long(94*5*langeTests*250000*nOfThreads/dauer);

		marks[0][zaehler][0][0]='n';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;	
	}

	if (floatTest)
	{
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];
		int i=0;
		_ftime(&atime);
		while (i<nOfThreads)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoFloat,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				
				++i;
			}
			Sleep(10);
		}

		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm));
	
		result=unsigned long(44*150000*langeTests*nOfThreads/dauer);

		marks[0][zaehler][0][0]='f';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;	
	}


	if (memTest)
	{	
		
		unsigned long result=0;
		unsigned long nThreadID[maxthreads]; long threadNo[maxthreads];
		int i=0;
		noftPot=1;
		while (noftPot<nOfThreads)
		{
			noftPot=noftPot*2;
			++i;
		}
		i=0;
		_ftime(&atime);
		while (i<noftPot)
		{
		threadRun[i]=0;
		threadResult[i]=0;
		threadNo[i]=i;
		hBenchThread[i]=CreateThread(NULL,
							0,
							(LPTHREAD_START_ROUTINE)DoMemory,
							(void*)threadNo[i],
							0,
							&nThreadID[i]);
		//SetThreadPriority(hBenchThread[i],THREAD_PRIORITY_NORMAL );
		++i;
		}
		int schlafe=0;
		while (schlafe==0)
		{
			schlafe=1;
			i=0;
			while (i<nOfThreads)
			{
				if (threadRun[i]==0)
				{
					schlafe=0;
				}
				++i;
			}
			Sleep(10);
		}
		i=0;
		
		_ftime (&etime);
		double dauer=((etime.time*1000+etime.millitm)-(atime.time*1000+atime.millitm))/1000;
		long memorytransfered=noftPot*10*(4096+8096+16192+32384);//(512+1024+2048+*10;
		result=unsigned long(memorytransfered*langeTests/dauer);

		marks[0][zaehler][0][0]='m';
		sprintf(marks[0][zaehler][1],"%10u",result);
		updateBuffer();
		InvalidateRect(NULL, FALSE);
		UpdateWindow();
		++zaehler;
	}


	i=2;
	while(i<26)
	{
		if (diskTest[i])
		{	
			unsigned long result=0;	
			long lmax=0;
			long lmittel=0;
			long lmin=0;
			long smax=0;
			long smittel=0;
			long smin=0;
			int prozent=111;
			result=bench[0].DoDisk(char(65+i),(10*langeTests),lmax,lmittel,lmin,smax,smittel,smin,prozent);
			if (result==0) 
			{
			marks[0][zaehler][0][0]=char(65+i);
			marks[0][zaehler+1][0][0]=' ';
			marks[0][zaehler+2][0][0]=' ';
			marks[0][zaehler+3][0][0]=' ';
			marks[0][zaehler+4][0][0]=' ';
			marks[0][zaehler+5][0][0]=' ';
			marks[0][zaehler+6][0][0]=' ';
			sprintf(marks[0][zaehler][1],"%10u",lmax);
			sprintf(marks[0][zaehler+1][1],"%10u",lmittel);
			sprintf(marks[0][zaehler+2][1],"%10u",lmin);
			sprintf(marks[0][zaehler+3][1],"%10u",smax);
			sprintf(marks[0][zaehler+4][1],"%10u",smittel);
			sprintf(marks[0][zaehler+5][1],"%10u",smin);
			sprintf(marks[0][zaehler+6][1],"%10u",prozent);
			zaehler=zaehler+7;
			updateBuffer();
			}
			
			InvalidateRect(NULL, FALSE);
			UpdateWindow();
		}
	++i;
	}
	} //end if
}


// Message queue ///////////////////////////////////////////////////////////////////////////

BEGIN_MESSAGE_MAP(CMainWindow, CFrameWnd)
	ON_COMMAND(ID_FLOATINGTEST, OnFloatingPerf)
	ON_COMMAND(ID_MEMPERF, OnMemPerf)
	ON_COMMAND(ID_WHETPERF, OnWhetPerf)
	ON_COMMAND(ID_QUEENPERF, OnQueenPerf)
	ON_COMMAND(ID_RUNALLTESTS, RunAllTests)
	ON_COMMAND(ID_DESELECTALLCPUTESTS, DeselectAllCPUTests)
	ON_COMMAND(ID_SELECTALLCPUTESTS, SelectAllCPUTests)
	ON_COMMAND(ID_OPENFILE, OnFileOpen)
	ON_COMMAND(ID_SAVEFILE, OnFileSave)
	ON_COMMAND(ID_COMPAREFILE, OnFileCompare)
	ON_COMMAND(ID_EXPORTFILE, OnFileExport)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
	ON_COMMAND(ID_LONGTESTS, OnLongTests)
	ON_COMMAND(ID_DHRYPERF, OnDhryPerf)
	ON_COMMAND(ID_NUMPERF, OnNumPerf)
	ON_COMMAND(ID_MATRIX, OnMatrix)
	ON_COMMAND(ID_HELP, OnHelp)
	ON_COMMAND(ID_DISKC, OnCPerf)
	ON_COMMAND(ID_DISKD, OnDPerf)
	ON_COMMAND(ID_DISKE, OnEPerf)
	ON_COMMAND(ID_DISKF, OnFPerf)
	ON_COMMAND(ID_DISKG, OnGPerf)
	ON_COMMAND(ID_DISKH, OnHPerf)
	ON_COMMAND(ID_DISKI, OnIPerf)
	ON_COMMAND(ID_DISKJ, OnJPerf)
	ON_COMMAND(ID_DISKK, OnKPerf)
	ON_COMMAND(ID_DISKL, OnLPerf)
	ON_COMMAND(ID_DISKM, OnMPerf)
	ON_COMMAND(ID_DISKN, OnNPerf)
	ON_COMMAND(ID_DISKO, OnOPerf)
	ON_COMMAND(ID_DISKP, OnPPerf)
	ON_COMMAND(ID_DISKQ, OnQPerf)
	ON_COMMAND(ID_DISKR, OnRPerf)
	ON_COMMAND(ID_DISKS, OnSPerf)
	ON_COMMAND(ID_DISKT, OnTPerf)
	ON_COMMAND(ID_DISKU, OnUPerf)
	ON_COMMAND(ID_DISKV, OnVPerf)
	ON_COMMAND(ID_DISKW, OnWPerf)
	ON_COMMAND(ID_DISKX, OnXPerf)
	ON_COMMAND(ID_DISKY, OnYPerf)
	ON_COMMAND(ID_DISKZ, OnZPerf)
	ON_COMMAND(ID_SHOWDESC, OnShowDesc)
	ON_COMMAND(ID_DESCRIPTION, OnDesc)
	ON_WM_PAINT()
	ON_WM_VSCROLL()
END_MESSAGE_MAP()



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -