C语言实现获取内存信息并输出的实例
实现实例代码:
headfile.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#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 ( " " );
}
}
}
double showMemoryInfo()
{
double MemorySize; //单位MB
HANDLE handle=GetCurrentProcess();
PROCESS_MEMORY_COUNTERS pmc;
GetProcessMemoryInfo(handle,&pmc, sizeof (pmc));
MemorySize=pmc.WorkingSetSize/1024;
printf ( "内存使用: %8lf " ,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, " " );
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;
}
|
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/afandaafandaafanda/article/details/44992447