資源簡介
內存清理工具 Windows 內存,程序是控制臺應用程序,用C/C++寫的。
使用EmptyWorkingSet/SetProcessWorkingSetSize實現內存清理與優化
程序只是對清理工具實現原理的一個展示,不建議大家使用來解決內存不夠
詳細介紹參看:http://blog.csdn.net/paschen/article/details/52829867

代碼片段和文件信息
//?RAMCleaner.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
//使用EmptyWorkingSet/SetProcessWorkingSetSize清理系統內存
//注:一切只是一個假象,將程序工作內存寫入Windows的頁面文件中反而會導致系統變慢
#define?MB_UNIT
#if?defined?KB_UNIT
#define?DIV (1024ULL)
#define?WIDTH 10
#elif?defined?MB_UNIT
#define?DIV (1024ULL?*?1024ULL)
#define?WIDTH 7
#elif?defined?GB_UNIT
#define?DIV (1024ULL?*?1024ULL?*?1024ULL)
#define?WIDTH 4
#else
#error?One?of?KB_UNIT?MB_UNIT?GB_UNIT?needs?to?be?defined!
#endif
void?PrintMemoryStatus()
{
MEMORYSTATUSEX?statex;
statex.dwLength?=?sizeof(statex);
if?(::GlobalMemoryStatusEx(&statex))
{
#if?defined?KB_UNIT
_tprintf(_T(“There?is??%*ld?percent?of?memory?in?use.\n“)?WIDTH?statex.dwMemoryLoad);
_tprintf(_T(“There?are?%*I64d?total?KB?of?physical?memory.\n“)?WIDTH?statex.ullTotalPhys?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??KB?of?physical?memory.\n“)?WIDTH?statex.ullAvailPhys?/?DIV);
_tprintf(_T(“There?are?%*I64d?total?KB?of?paging?file.\n“)?WIDTH?statex.ullTotalPageFile?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??KB?of?paging?file.\n“)?WIDTH?statex.ullAvailPageFile?/?DIV);
_tprintf(_T(“There?are?%*I64d?total?KB?of?virtual?memory.\n“)?WIDTH?statex.ullTotalVirtual?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??KB?of?virtual?memory.\n“)?WIDTH?statex.ullAvailVirtual?/?DIV);
//_tprintf(_T(“There?are?%*I64d?free??KB?of?extended?memory.\n“)?WIDTH?statex.ullAvailExtendedVirtual?/?DIV);
#elif?defined?MB_UNIT
_tprintf(_T(“There?is??%*ld?percent?of?memory?in?use.\n“)?WIDTH?statex.dwMemoryLoad);
_tprintf(_T(“There?are?%*I64d?total?MB?of?physical?memory.\n“)?WIDTH?statex.ullTotalPhys?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??MB?of?physical?memory.\n“)?WIDTH?statex.ullAvailPhys?/?DIV);
_tprintf(_T(“There?are?%*I64d?total?MB?of?paging?file.\n“)?WIDTH?statex.ullTotalPageFile?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??MB?of?paging?file.\n“)?WIDTH?statex.ullAvailPageFile?/?DIV);
_tprintf(_T(“There?are?%*I64d?total?MB?of?virtual?memory.\n“)?WIDTH?statex.ullTotalVirtual?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??MB?of?virtual?memory.\n“)?WIDTH?statex.ullAvailVirtual?/?DIV);
//_tprintf(_T(“There?are?%*I64d?free??MB?of?extended?memory.\n“)?WIDTH?statex.ullAvailExtendedVirtual?/?DIV);
#elif?defined?GB_UNIT
_tprintf(_T(“There?is??%*ld?percent?of?memory?in?use.\n“)?WIDTH?statex.dwMemoryLoad);
_tprintf(_T(“There?are?%*I64d?total?GB?of?physical?memory.\n“)?WIDTH?statex.ullTotalPhys?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??GB?of?physical?memory.\n“)?WIDTH?statex.ullAvailPhys?/?DIV);
_tprintf(_T(“There?are?%*I64d?total?GB?of?paging?file.\n“)?WIDTH?statex.ullTotalPageFile?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??GB?of?paging?file.\n“)?WIDTH?statex.ullAvailPageFile?/?DIV);
_tprintf(_T(“There?are?%*I64d?total?GB?of?virtual?memory.\n“)?WIDTH?statex.ullTotalVirtual?/?DIV);
_tprintf(_T(“There?are?%*I64d?free??GB?of?virtual?memo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????872??2016-10-15?18:18??內存清理工具\resource.h
?????文件????????320??2016-10-15?19:48??內存清理工具\stdafx.h
?????文件????????240??2016-10-15?18:05??內存清理工具\targetver.h
?????文件???????5325??2016-10-15?20:30??內存清理工具\RAMCleaner.cpp
?????文件????????214??2016-10-15?18:05??內存清理工具\stdafx.cpp
?????文件?????174080??2016-10-15?20:32??內存清理工具\Release\RAMCleaner.exe
?????文件?????193024??2016-10-15?20:32??內存清理工具\x64\Release\RAMCleaner.exe
?????目錄??????????0??2016-10-16?16:13??內存清理工具\x64\Release
?????目錄??????????0??2016-10-16?16:13??內存清理工具\Release
?????目錄??????????0??2016-10-16?16:13??內存清理工具\x64
?????目錄??????????0??2016-10-16?16:13??內存清理工具
-----------?---------??----------?-----??----
???????????????374075????????????????????11
評論
共有 條評論