Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ledkets
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 25
#1

Почему программа в Windows может использовать лишь 1792 мегабайта RAM? - C++

25.12.2011, 00:21. Просмотров 635. Ответов 4
Метки нет (Все метки)

Простейшая программа, для того чтобы узнать сколько памяти можно использовать в системе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    unsigned int bit=0x40000000, sum=0;
    char *x;
 
    while (bit > 4096) 
    {
        x = (char*)malloc(bit);
        if (x)
            sum += bit;
        bit >>= 1;
    }
    printf("%08x bytes (%.1fMb)\n", sum, sum/1024.0/1024.0);
    return 0;
}
При выполнении программа выводит на экран число 1792.
Запускал в 32-битной WindowXP с 4 Гб RAM
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 00:21     Почему программа в Windows может использовать лишь 1792 мегабайта RAM?
Посмотрите здесь:

Почему не может быть такой функции? C++
Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? C++
Почему не получается использовать bitset в VC++? C++
При просмотре уже созданного файла программа выводит лишь одну строку, а остальные обнуляет C++
C++ Почему может не запускаться .exe файл?
C++ Почему break нельзя использовать в if?
C++ RAM, чтение и запись в RAM, Pointer ы
Программа с использованием windows.h не находит файла. Не знаю почему C++
C++ Почему не рекомендуется использовать препроцессор?
C++ Чтение из файла - программа корректно работает лишь раз
Почему может не работать деструктор? C++
C++ Почему может не работать обработчик события?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
25.12.2011, 01:19     Почему программа в Windows может использовать лишь 1792 мегабайта RAM? #2
Цитата Сообщение от ledkets Посмотреть сообщение
При выполнении программа выводит на экран число 1792.
Запускал в 32-битной WindowXP с 4 Гб RAM
Ну вот почти 2-Гб что и положено пользовательскому 32-битному процессу, остальное системе память нужна.
t1m0n
 Аватар для t1m0n
604 / 391 / 21
Регистрация: 03.11.2009
Сообщений: 1,821
25.12.2011, 02:49     Почему программа в Windows может использовать лишь 1792 мегабайта RAM? #3
вроде как то можно в boot.ini прописать, чтоб программы использовали 3Gb
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
25.12.2011, 03:10     Почему программа в Windows может использовать лишь 1792 мегабайта RAM? #4
Цитата Сообщение от t1m0n Посмотреть сообщение
вроде как то можно в boot.ini прописать, чтоб программы использовали 3Gb
... пишешь magaCAD universal?
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
25.12.2011, 11:07     Почему программа в Windows может использовать лишь 1792 мегабайта RAM? #5
Цитата Сообщение от t1m0n Посмотреть сообщение
вроде как то можно в boot.ini прописать, чтоб программы использовали 3Gb
Если системе оставить только 1Gb тогда будет доступно user-приложению меньшее число объектов ядра(потоки, синхронизирующие объекты, gdi...) почти в два раза.
Yandex
Объявления
25.12.2011, 11:07     Почему программа в Windows может использовать лишь 1792 мегабайта RAM?
Ответ Создать тему
Опции темы

Текущее время: 13:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru