#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
int tick1, tick2;
_asm rdtsc
_asm mov tick1, eax
Sleep(50);
_asm rdtsc
_asm mov tick2, eax
int freq = (tick2 - tick1) / 50000;
printf("CPU:%d MHz", freq);
SYSTEM_INFO siSysInfo;
GetSystemInfo(&siSysInfo);
printf("\nHardware information: \n");
printf(" OEM ID: %u\n", siSysInfo.dwOemId);
printf(" Number of processors: %u\n", siSysInfo.dwNumberOfProcessors);
printf(" Page size: %u\n", siSysInfo.dwPageSize);
printf(" Processor type: %u\n", siSysInfo.dwProcessorType);
printf(" Minimum application address: %lx\n", siSysInfo.lpMinimumApplicationAddress);
printf(" Maximum application address: %lx\n", siSysInfo.lpMaximumApplicationAddress);
printf(" Active processor mask: %u\n", siSysInfo.dwActiveProcessorMask);
MEMORYSTATUS memstatus;
memset(&memstatus, 0, sizeof(MEMORYSTATUS));
memstatus.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&memstatus);
DWORD mem = memstatus.dwAvailPhys;
DWORD res = memstatus.dwAvailVirtual;
DWORD totalphy = memstatus.dwTotalPhys;
DWORD totalvir = memstatus.dwTotalVirtual;
cout << "Total:" << totalphy << " ";
cout << "Free:" << mem << endl;
cout << "Physical memory in use:" << memstatus.dwMemoryLoad << "%" << endl;
system("pause");
}
#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
int tick1, tick2;
_asm rdtsc
_asm mov tick1, eax
Sleep(50);
_asm rdtsc
_asm mov tick2, eax
int freq = (tick2 - tick1) / 50000;
printf("CPU:%d MHz", freq);
SYSTEM_INFO siSysInfo;
GetSystemInfo(&siSysInfo);
printf("\nHardware information: \n");
printf(" OEM ID: %u\n", siSysInfo.dwOemId);
printf(" Number of processors: %u\n", siSysInfo.dwNumberOfProcessors);
printf(" Page size: %u\n", siSysInfo.dwPageSize);
printf(" Processor type: %u\n", siSysInfo.dwProcessorType);
printf(" Minimum application address: %lx\n", siSysInfo.lpMinimumApplicationAddress);
printf(" Maximum application address: %lx\n", siSysInfo.lpMaximumApplicationAddress);
printf(" Active processor mask: %u\n", siSysInfo.dwActiveProcessorMask);
MEMORYSTATUS memstatus;
memset(&memstatus, 0, sizeof(MEMORYSTATUS));
memstatus.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&memstatus);
DWORD mem = memstatus.dwAvailPhys;
DWORD res = memstatus.dwAvailVirtual;
DWORD totalphy = memstatus.dwTotalPhys;
DWORD totalvir = memstatus.dwTotalVirtual;
cout << "Total:" << totalphy << " ";
cout << "Free:" << mem << endl;
cout << "Physical memory in use:" << memstatus.dwMemoryLoad << "%" << endl;
system("pause");
}