#define PSAPI_VERSION 1
#include <iostream>
#include "time.h"
#include "Windows.h"
#include "winbase.h"
#include "psapi.h"
const int cellNum = 1000;
const int cellSize = 1024 * 1024;
size_t GetPeakWorkingSetInMbMYYY(size_t processID = 0)
{
if (processID == 0)
processID = GetCurrentProcessId();
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
size_t toRet = 0;
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, static_cast<DWORD>(processID));
if (NULL == hProcess)
{
std::cout << "smth wrong" << std::endl;
exit(0);
}
if ( GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)))
{
toRet = pmc.PeakWorkingSetSize;
}
CloseHandle(hProcess);
return toRet/1000000;
}
int main()
{
Sleep(1000);
char** val = (char**)malloc(cellNum * sizeof(char*));
for (int i = 0; i < cellNum; i++)
{
val[i] =(char*)malloc(cellSize * sizeof(char));
//std::cout << i + 1 << " cells allocated" << std::endl;
}
std::cout << "total allocated cells: " << cellNum << std::endl;
std::cout << "total allocated bytes: " << GetPeakWorkingSetInMbMYYY() << std::endl;
val;
Sleep(10000);
return 0;
}
I2RlZmluZSBQU0FQSV9WRVJTSU9OIDEKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSAidGltZS5oIgojaW5jbHVkZSAiV2luZG93cy5oIgojaW5jbHVkZSAid2luYmFzZS5oIgojaW5jbHVkZSAicHNhcGkuaCIKCmNvbnN0IGludCBjZWxsTnVtID0gMTAwMDsKY29uc3QgaW50IGNlbGxTaXplID0gMTAyNCAqIDEwMjQ7CgpzaXplX3QgR2V0UGVha1dvcmtpbmdTZXRJbk1iTVlZWShzaXplX3QgcHJvY2Vzc0lEID0gMCkKewoJaWYgKHByb2Nlc3NJRCA9PSAwKQoJCXByb2Nlc3NJRCA9IEdldEN1cnJlbnRQcm9jZXNzSWQoKTsKCUhBTkRMRSBoUHJvY2VzczsKCVBST0NFU1NfTUVNT1JZX0NPVU5URVJTIHBtYzsKCXNpemVfdCB0b1JldCA9IDA7CgloUHJvY2VzcyA9IE9wZW5Qcm9jZXNzKFBST0NFU1NfUVVFUllfSU5GT1JNQVRJT04gfAoJCVBST0NFU1NfVk1fUkVBRCwKCQlGQUxTRSwgc3RhdGljX2Nhc3Q8RFdPUkQ+KHByb2Nlc3NJRCkpOwoJaWYgKE5VTEwgPT0gaFByb2Nlc3MpCgl7CgkJc3RkOjpjb3V0IDw8ICJzbXRoIHdyb25nIiA8PCBzdGQ6OmVuZGw7CgkJZXhpdCgwKTsKCX0KCQkKCWlmICggR2V0UHJvY2Vzc01lbW9yeUluZm8oaFByb2Nlc3MsICZwbWMsIHNpemVvZihwbWMpKSkKCXsKCQl0b1JldCA9IHBtYy5QZWFrV29ya2luZ1NldFNpemU7Cgl9CglDbG9zZUhhbmRsZShoUHJvY2Vzcyk7CglyZXR1cm4gdG9SZXQvMTAwMDAwMDsKfQoKaW50IG1haW4oKQp7CglTbGVlcCgxMDAwKTsKCWNoYXIqKiB2YWwgPSAoY2hhcioqKW1hbGxvYyhjZWxsTnVtICogc2l6ZW9mKGNoYXIqKSk7Cglmb3IgKGludCBpID0gMDsgaSA8IGNlbGxOdW07IGkrKykKCXsKCQl2YWxbaV0gPShjaGFyKiltYWxsb2MoY2VsbFNpemUgKiBzaXplb2YoY2hhcikpOwoJCS8vc3RkOjpjb3V0IDw8ICBpICsgMSA8PCAiIGNlbGxzIGFsbG9jYXRlZCIgPDwgc3RkOjplbmRsOwoJfQoJc3RkOjpjb3V0IDw8ICAidG90YWwgYWxsb2NhdGVkIGNlbGxzOiAiIDw8IGNlbGxOdW0gPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8ICAidG90YWwgYWxsb2NhdGVkIGJ5dGVzOiAiIDw8IEdldFBlYWtXb3JraW5nU2V0SW5NYk1ZWVkoKSA8PCBzdGQ6OmVuZGw7Cgl2YWw7CglTbGVlcCgxMDAwMCk7CglyZXR1cm4gMDsKfQ==