【内存】的获取个人小结

本文为个人使用后的一些总结,逐步完善中...

1、获得全局内存

对应函数:void GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer); 【总内存2G以内使用】

API:

typedef struct _MEMORYSTATUS
{
	DWORD dwLength;			//本结构的长度;
	DWORD dwMemoryLoad;     //已用内存的百分比;
	SIZE_T dwTotalPhys;		//物理内存总量;
	SIZE_T dwAvailPhys;		//可用物理内存;
	SIZE_T dwTotalPageFile; //交换文件总的大小;
	SIZE_T dwAvailPageFile; //交换文件中空闲部分大小;
	SIZE_T dwTotalVirtual;  //用户可用的地址空间;
	SIZE_T dwAvailVirtual;  //当前空闲的地址空间;
} MEMORYSTATUS, *LPMEMORYSTATUS;

使用实例:

void CGetMemory_1Dlg::OnBnClickedButton1()
{
	MEMORYSTATUS lpBuffer;
	lpBuffer.dwLength = sizeof(MEMORYSTATUS);
	GlobalMemoryStatus(&lpBuffer);
}

【总内存2G~4G的建议使用扩展函数】GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)

API:

typedef struct _MEMORYSTATUSEX {
    DWORD dwLength;
    DWORD dwMemoryLoad;
    DWORDLONG ullTotalPhys;
    DWORDLONG ullAvailPhys;
    DWORDLONG ullTotalPageFile;
    DWORDLONG ullAvailPageFile;
    DWORDLONG ullTotalVirtual;
    DWORDLONG ullAvailVirtual;
    DWORDLONG ullAvailExtendedVirtual;
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;

使用实例:

void CGetMemory_1Dlg::OnBnClickedButton1()
{
	MEMORYSTATUSEX lpBuffer;
	lpBuffer.dwLength = sizeof(MEMORYSTATUSEX);
	GlobalMemoryStatusEx(&lpBuffer);
}

2、获得取得某一进程内存

call:

BOOL GetProcessMemoryInfo(

HANDLE Process,

PPROCESS_MEMORY_COUNTERS ppsmemCounters,

DWORD cb

);

API:

typedef struct _PROCESS_MEMORY_COUNTERS
{
	DWORD cb;
	DWORD PageFaultCount;
	SIZE_T PeakWorkingSetSize;
	SIZE_T WorkingSetSize;
	SIZE_T QuotaPeakPagedPoolUsage;
	SIZE_T QuotaPagedPoolUsage;
	SIZE_T QuotaPeakNonPagedPoolUsage;
	SIZE_T QuotaNonPagedPoolUsage;
	SIZE_T PagefileUsage;
	SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS, *PPROCESS_MEMORY_COUNTERS;
时间: 2024-08-28 15:31:52

【内存】的获取个人小结的相关文章

Java内存分配、管理小结

 想写这篇总结酝酿了有个来月了,却始终感觉还差点什么东西,一直未敢动笔. 最近两天连夜奋战,重新整理下前面查阅的资料.笔记,还是决定将它写出来. 现在提出几个问题,如果都能熟练回答的大虾,请您飘过.如以往一样,我是小菜,本文自然也是针对小菜阶层的总结. 首先是概念层面的几个问题: Java中运行时内存结构有哪几种? Java中为什么要设计堆栈分离? Java多线程中是如何实现数据共享的? Java反射的基础是什么? 然后是运用层面: 引用类型变量和对象的区别? 什么情况下用局部变量,什么情况下用

系统内存信息获取工具类

/** * 得到系统内存信息的工具类 * @author zwenkai */ public class SystemInfoUtils { /** * 得到运行的进程总个数 * * @param context * @return 运行进程个数 */ public static int getRunningProcessCount(Context context) { ActivityManager am = (ActivityManager) context.getSystemService

C#中的文件路径获取函数和文件名字获取函数小结

1. 获取绝对文件路径 代码如下: System.IO.Path.GetFullPath(string path) string fileName = "myfile.ext"; string path1 = @"mydir"; string path2 = @"\mydir"; string fullPath; fullPath = Path.GetFullPath(path1); fullPath = Path.GetFullPath(fil

获得当前设备可用的内存 和 获取当前任务所占用的内存 (单位:MB)(转)

获取当前任务所占的内存: #include <sys/sysctl.h> #include <mach/mach.h> // 任务占用内存 double usedMemory() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) task_basic_info_data_t taskInfo; mach_msg_type_number_t infoCount = TASK_BASIC_INFO_COUNT; kern_return_t ke

72获取内存信息(运行的进程数,可用的总内存,剩余内存)&amp;&amp;获取可用的总内存的BUG的解决

获取内存信息(运行的进程数,可用的总内存,剩余内存)属于系统的工具方法了,开始的工具方法是这样的: package com.ustc.mobilemanager.utils; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo; import android.app.ActivityManager.RunningAppProcessInfo

cocos2dx中加载图片资源的方法,和从内存中获取已经加载的图片资源的方法

游戏中通常需要将常用的资源如:声音,图片,plist文件,提前加载进内存,以加快游戏的流畅度 1.预加载声音: SimpleAudioEngine::getInstance()->preloadBackgroundMusic("boom.mp3"); 加载之后就可以直接播放:SimpleAudioEngine::getInstance()->playBackgroundMusic("boom.mp3"); 2.预加载图片资源: 图片资源的加载分为同步加载

Linux基本命令及获取帮助小结1

众所周知,操作系统(简称OS)是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得比硬件提供的功能更多的支持.其中kernal作为操作系统最底层的结构,将底层的硬件资源虚拟化成更加容易访问的资源,如人机交互界面上的图标等.kernal上一层为library(库),它们为用户对计算机的操作提供了接口.用户可以通过操作系统接口调用library库中的函数也可以直接通过kernal调用库中函数,两者之

JS闭包、作用域链、垃圾回收、内存泄露相关知识小结

补充: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 闭包的三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 闭包的定义及其优缺点: 闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露. 闭包是javascript语言的一大

Android中图形参数及图形内存信息获取

1.adb shelldumpsys gfxinfo Caches: Current memoryusage / total memory usage (bytes): TextureCache          2182188 /25165824 LayerCache            6553600 /16777216 RenderBufferCache           0/  2097152 GradientCache               0/   524288 PathC