Memory test. SuSe vs XP

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
dima
Житель
Сообщения: 690
Зарегистрирован: 19 фев 2003, 19:26
Откуда: Хабаровск->Toronto

Memory test. SuSe vs XP

Сообщение dima »

Программа алокирует почти всю память выделенную процессу а потом освобождает ее
После запуска на XP все стало замерзать, работать стало очень неудобно. Перегрузил XP - все вернулось в норму
Это у меня с памятью на XP что-то или это общая проблема для MS?
На SuSe 10.3 сделал то-же самое. Стало немного похуже, но гораздо лучше чем XP.

Интересно на Mac-e такое сделать....

Код: Выделить всё

// to compile under Linux use g++ main.cpp
#include <stdio.h>
#include <vector>

using namespace std;

vector<void*> vMemory;

int main(int argc, char* argv[])
{
    int     nIter = 0;
    void*   pBlock = NULL;
#ifdef linux
    size_t  nSize = 1024 * 10; // 10 K
#else
    size_t  nSize = 1024 * 900; // 900 K
#endif

    for(; ; nIter++)
    {
        pBlock = malloc(nSize);
        if(pBlock != NULL)
        {
            vMemory.push_back(pBlock);
        }
        else
        {
            if(nSize < 128)
                break;

            printf("No more memory for you !. Block size = %d, Iterations %d\n", nSize, nIter);
            nSize = nSize / 2;
            printf("New block size = %d\n", nSize);
        }
    }

    puts("Releasing memory ...");
    vector<void*>::iterator it = vMemory.begin();
    for(; it != vMemory.end(); it++)
    {
        free(*it);
    }

    vMemory.clear();

    puts("Memory released. Press Enter to exit program.");
//    char szDummy[128];
//    gets(szDummy);
return 1;
}
Ответить