C语言实现获取内存信息并输出的实例

C语言实现获取内存信息并输出的实例

实现实例代码:

headfile.h

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#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<length;i++)

{

a[i]=rand()%length;

}

}

void printData(int a[],int length) //打印数字,到控制台,每五个换一行

{

for (int i=0;i<length;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;

}


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是 C语言实现获取内存信息并输出的实例 的全部内容, 来源链接: utcz.com/z/314040.html

回到顶部