C语言实现获取内存信息并输出的实例
实现实例代码:
headfile.h
#include
#include
#include
#define TRUE 1
#define FALSE 0
#define MAX 10000
typedef int KeyType;
typedef int OtherType;
typedef struct
{
KeyType key;
OtherType other_data;
}RecordType;
seek.cpp
#include "stdafx.h"
#include "headfile.h"
#include "windows.h"
#include "conio.h "
#include"WinBase.h"
#include "Psapi.h"
#pragma once
#pragma message("Psapi.h --> Linking with Psapi.lib")
#pragma comment(lib,"Psapi.lib")
int Data[MAX]={0};
void produceData(int a[],int length) //给数组生成数据,用于随即查找
{
time_t t;
srand(time(&t));
for (int i=0;i
{
a[i]=rand()%length;
}
}
void printData(int a[],int length) //打印数字,到控制台,每五个换一行
{
for (int i=0;i
{
printf("%8d",a[i]);
if (0==i%5)
{
printf("\n");
}
}
}
double showMemoryInfo()
{
double MemorySize; //单位MB
HANDLE handle=GetCurrentProcess();
PROCESS_MEMORY_COUNTERS pmc;
GetProcessMemoryInfo(handle,&pmc,sizeof(pmc));
MemorySize=pmc.WorkingSetSize/1024;
printf("内存使用: %8lf \n",MemorySize); //WorkingSetSize The current working set size, in bytes.
return MemorySize;
}
void writeRecordtime(unsigned rTime)//将程序结果运行时间写入文件
{
FILE *fpRecord=NULL;
char *s="your programm running time is: ";
char *c="ms ";
if((fpRecord=fopen("record.txt","wt+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
fprintf( fpRecord, "%s", s);
fprintf( fpRecord, "%d", rTime);
fprintf( fpRecord, "%s", c);
fprintf( fpRecord, "\n");
fprintf( fpRecord, "your programm use %fMB size of memory!!!", showMemoryInfo());
fclose(fpRecord);
}
int _tmain(int argc, _TCHAR* argv[])
{
produceData(Data,MAX);
printData(Data,MAX);
getchar();
return 0;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!