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;
}

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

(0)

相关推荐

  • 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

  • Android 中Crash时如何获取异常信息详解及实例

    Android 中Crash时如何获取异常信息详解 前言: 大家都知道,Android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于Android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况.当crash发生时,系统会kill掉你的程序,表现就是闪退或者程序已停止运行,这对用户来说是很不友好的,也是开发者所不愿意看到的,更糟糕的是,当用户发生了crash,开发者却无法得知程序为何crash,即便你想去解决这个crash,

  • 使用python获取CPU和内存信息的思路与实现(linux系统)

    大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数).与其他文件系统不同,/proc 存在于内存而不是硬盘中.proc 文件系统提供的信息如下: •进程信息:系统中的任何一个进程,在 proc 的子目录中都有一个同名的

  • Go语言reflect.TypeOf()和reflect.Type通过反射获取类型信息

    在 Go语言中通过调用 reflect.TypeOf 函数,我们可以从一个任何非接口类型的值创建一个 reflect.Type 值.reflect.Type 值表示着此非接口值的类型.通过此值,我们可以得到很多此非接口类型的信息.当然,我们也可以将一个接口值传递给一个 reflect.TypeOf 函数调用,但是此调用将返回一个表示着此接口值的动态类型的 reflect.Type 值. 实际上,reflect.TypeOf 函数的唯一参数的类型为 interface{},reflect.Type

  • Android获取系统储存以及内存信息的方法(二)

    Android获取储存信息以及内存信息可以用adb命令查看. adb查看系统内存信息以及储存信息: 命令:adb shell cat /proc/meminfo 代码: private static final String FILENAME_PROC_MEMINFO = "/proc/meminfo"; /** * 获取手机内存总大小 * @return */ public static String getTotalMemorySize() { try { FileReader f

  • Go语言扫描目录并获取相关信息的方法

    本文实例讲述了Go语言扫描目录并获取相关信息的方法.分享给大家供大家参考.具体分析如下: 前言:最近看到Go里面有一个func很容易就可以扫描整个目录,并且可以得到相应的目录和文件信息,所以我将其进行了封装,拿到file info的所有信息 这样就可以方便的做其它用途了. 直接上代码,代码基于Go version 1 复制代码 代码如下: package main import (     "path/filepath"     "os"     "fla

  • 易语言通过读取文件获取WIFI信息的代码

    常量数据表 .版本 2 .常量 常量_临时目录, "<文本长度: 28>", , c:\users\public\tmp_wifipath 本地WIFI密码配置读取的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 iext .支持库 eAPI .程序集 窗口程序集_启动窗口 .子程序 遍历文件 .如果 (文件是否存在 (#常量_临时目录)) 文件_枚举1 (#常量_临时目录, "*.xml", &S_遍历WIFI文件) .否则 信息框

  • c#反射机制学习和利用反射获取类型信息

    1..NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构. 应用程序结构分为应用程序域-程序集-模块-类型-成员几个层次,公共语言运行库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局. 程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集.模块和类型的对象.我们可以使用反射动态地创建类型的实例,将类型绑定到现有对象或从现有对象中获取类型,然后调用类型的方法或访问其字段

  • 纯批处理获取硬件信息的代码

    先声明:我私下会不断的更新代码,只有大幅度更新才会上传到这里(目前核心代码基本完善)! 兼容XP Win7 Win8 win10 本程序特性: 1.运行环境判断,若自身被修改则自动闪退:若PE环境则提示并指引退出:若虚拟机环境则提示信息获取可能不准:若非管理员权限也会截取并提示. 2.关于硬盘.内存容量的计算方面支持 字节 KB MB GB TB PB 3.由于有些电脑多网卡.显卡.声卡,此程序只获取正在使用的相关信息 4.硬盘温度,使用时间,通电次数纯批处理实现!(原创代码,转载请注明出处!)

  • C语言与C++内存管理超详细分析

    目录 一.内存 1.1 内存四区 1.2 使用代码证实内存四区的底层结构 二.malloc 和 free 2.1 malloc 和 free 的使用 2.2 内存泄漏与安全使用实例与讲解 三.new 和 delete 3.1 new 和 delete 使用 3.2 delete 与 delete[] 的区别 一.内存 在计算机中,每个应用程序之间的内存是相互独立的,通常情况下应用程序 A 并不能访问应用程序 B,当然一些特殊技巧可以访问,但此文并不详细进行说明.例如在计算机中,一个视频播放程序与

随机推荐