Windows limits amount contiguous ram

Проблемы с выделением больших объёмов памяти

Что делаем:
Выделяю память самописным dummy вектором, который раздувается вдвое, когда нужно.

Что получаем:
Система сложная, минимальный код вычленять не пробовал, но падает где-то на очередной попытке раздуться с std::bad_alloc. Что характерно, памяти, вроде, достаточно: process explorer показывает

600Mb virtual memory, то есть даже если вся память процесса раздуется вдвое, то ещё места будет достаточно.

Вопрос:
что делать? куда копать?

//upd: что особенно удивительно, раз на раз не приходится и при детерменированной стратегии использования памяти приложение то падает, то нет.

NULL_PTR
ну я наталкивал везде free(malloc(10)); вроде не падало. если я побил память, почему тогда еггог не проявляется при меньших запросах памяти? вообще маловероятно, хотя и не исключено.

А если количество используемой памяти определять не эксплорером, а своей программой?
Можно же при каждом перевыделении писать в лог-файл.

andriano
> Можно же при каждом перевыделении писать в лог-файл.
не хочу

короче ещё поанализировал код. программа падает, когда использует памяти порядка 700Mb. особенность самопального вектора в том, что когда раздувается, он создаёт копию данных в два раза большего размера, копирует в них старые данные, старые данные удаляет. может, баг в том, в определённый момент в системе хранится не n, не 2 * n памяти a n + 2 * n, то есть 700 * 3

2,1Gb, то есть впритык? ну это было бы несколько странно, потому что векторов несколько и размеры у них примерно одинаковые, то есть все разом они занять в три раза больший размер вроде не могут

Suslik
Посмотри, что покажет VMMap.

Проблемы с выделением больших объёмов памяти

Что делаем:
Выделяю память самописным dummy вектором, который раздувается вдвое, когда нужно.

Что получаем:
Система сложная, минимальный код вычленять не пробовал, но падает где-то на очередной попытке раздуться с std::bad_alloc. Что характерно, памяти, вроде, достаточно: process explorer показывает

600Mb virtual memory, то есть даже если вся память процесса раздуется вдвое, то ещё места будет достаточно.

Вопрос:
что делать? куда копать?

//upd: что особенно удивительно, раз на раз не приходится и при детерменированной стратегии использования памяти приложение то падает, то нет.

NULL_PTR
ну я наталкивал везде free(malloc(10)); вроде не падало. если я побил память, почему тогда еггог не проявляется при меньших запросах памяти? вообще маловероятно, хотя и не исключено.

А если количество используемой памяти определять не эксплорером, а своей программой?
Можно же при каждом перевыделении писать в лог-файл.

andriano
> Можно же при каждом перевыделении писать в лог-файл.
не хочу

короче ещё поанализировал код. программа падает, когда использует памяти порядка 700Mb. особенность самопального вектора в том, что когда раздувается, он создаёт копию данных в два раза большего размера, копирует в них старые данные, старые данные удаляет. может, баг в том, в определённый момент в системе хранится не n, не 2 * n памяти a n + 2 * n, то есть 700 * 3

2,1Gb, то есть впритык? ну это было бы несколько странно, потому что векторов несколько и размеры у них примерно одинаковые, то есть все разом они занять в три раза больший размер вроде не могут

Suslik
Посмотри, что покажет VMMap.

Отзывы о программе MemTest

Загрузок всего 460 063
Загрузок за сегодня 31
Кол-во комментариев 20
Подписавшихся на новости о программе 12 (подписаться)

Anjey про MemTest 7.0 [30-05-2020]

Ну во первых это не установочный файл, то бишь скачиваем не программу а .
во вторых — WINRAR при открытии файла пишет следующее:
«WinRAR не бесплатная программа. По окончании 40 испытательного периода Вы должны купить лицензию .
И это называется бесплатное скачивание?
3 | 32 | Ответить

West в ответ Anjey про MemTest 7.0 [30-05-2020]

То, что ты пользуешься условно-бесплатным архиватором это твои проблемы!! При чем тут вообще WinRar до MemTest.
Я тебе по большому секрету скажу, что архивы можно открыть не только винраром. Есть бесплатный 7-zip.
И да, это называется бесплатным скачиванием.
Ты с какого дерева слез?
31 | 3 | Ответить

Gvidas про MemTest 6.3 [26-09-2019]

Admin в ответ Gvidas про MemTest 6.3 [25-11-2019]

Проверено — вирусов НЕТ!
https://www.virustotal.com/gui/url/cc0aada804f44e46274732950c8341d4a36ea66e4a3f8d9133c86e1ab0e272a8/detection
5 | 7 | Ответить

sаN4es про MemTest 6.0 [17-04-2019]

Nopost про MemTest 6.0 [22-01-2018]

Windows limits the amount of contigous RAM MemTests can allocate to betwen 2 and 3,5GB.
To test all your RAM, run more than one copy of MemTest simultaneously and set each copy to test a portion of available RAM. Running more than one copy of MemTest does not lower the qualyty of the test (and can even improve it if you have multiple cores or CPUs)

NOTE: this process in automated in MemTest Pro
Машинный перевод:
Windows ограничивает количество смежных RAM MemTests, которые можно распределить между 2 и 3,5 ГБ.
Чтобы протестировать всю оперативную память, одновременно запускайте несколько экземпляров MemTest и установите каждую копию для проверки части доступной оперативной памяти. Запуск более чем одной копии MemTest не снижает квалификацию теста (и может даже улучшить его, если у вас несколько ядер или процессоров)

Читайте также:  Booting windows from vhd

ПРИМЕЧАНИЕ. Этот процесс в автоматизированном виде в MemTest Pro
И ещё:
.If you find this free version useful, please considering purchasing the PRO [$5] or Deluxe [$14] versions, which add additional features.
Если вы найдете эту бесплатную версию полезной, подумайте о покупке версий PRO [$ 5] или Deluxe [$ 14], которые добавят дополнительные функции.
10 | 38 | Ответить

Знаток про MemTest 6.0 [18-11-2017]

Я хочу предупредить,эту программу «MemTest6.0» не путайте с программой «Memtest86 7.4» (которая работает до загрузки системы)от PassMark SoftWare http://www.softportal.com/software-30821-memtest86.html (снимки экрана от версии 4.1, образ это программы версии 4.1 скачал с другого сайта, энтеркомпьютер)
8 | 17 | Ответить

iBot про MemTest 5.1 [29-08-2017]

Знаю эту программу лет 5 или больше. Единственная, которая показывала ошибки на старой системе, там возникла ситуация несовместимости старых и новых планок памяти (докупил), они отказывались работать на CR1 (синие экраны, спонтанные вылеты на ровном месте). При этом я знал, что старые планки железно стабильные, ведь до покупки новых проблем не было. Ни тест оперативной средствами Windows ни memtest86 ничего не показывали (может мало прогонов делал), а эта показала сразу. Когда выставил CR2 проблема исчезла, как и ошибки из этой программы теста. Я даже Pro версию купил, после той вакханалии, как спасибо разработчику.
Сейчас обновил систему и эта программа снова выручила. Разогнал Ryzen в АИДЕ64 15 часов стабилен (CPU+FPU+Cache), а вот в одном из 3-х инстансов этой программы по 2000 возникло две ошибки на 200+%, в оcтальных 1500% чисто. Запустил memtest86 7.4 тот подтвердил на первом проходе в 7 тесте единственную ошибку. Сделал еще 4 прохода, в одном снова появилась одинокая ошибка в 7 тесте. Программа работает как надо и memtest86 это подтвердил в этот раз.
Запускайте число инстансов на половину или 2/3 вашей памяти, оставляйте на ночь. Если не найдет ошибок, значит у вас все на 99,99999999% гуд.
5 | 11 | Ответить

Дмитрий про MemTest 5.0 [28-01-2017]

У кого не получается, пробуйте тестить по одной планке.
5 | 6 | Ответить

aleks про MemTest 5.0 [26-01-2017]

What is the RAM Limit in Windows 10 in 2018?

If you were wondering what the RAM limit is in Windows 10, Windows 8.1, read below to find the simple answer to this question.
Since Microsoft has announced the Windows 10, 8.1 update for Windows 8, many have started to wonder what was the RAM limit in Windows 10, Windows 8.1, since that might have been changed by the Redmond company, since the new update changes quite a lot of things. The average Joe users will be pleased with only a few RAMs, but filmmakers, engineers, doctors and many others specialized jobs require a lot of processing power.

On the other hand, many expected Windows 10 to support even more RAM power since the OS brings some heavy apps to the table — such as Mixed Reality apps. The RAM limit on Windows 10 has indeed increased, reaching 2TB GB for Windows 10 Pro and Windows 10 Enterprise.

RAM Limit in Windows 10, Windows 8.1

You can see in the above image, the maximum physical memory RAM limits for Windows 10, Windows 8 which are the same for Windows 8.1, as well. They are as follows:

  • RAM limits in Windows 10, Windows 8.1 Enterprise – 4GB on x86, 512GB on x64
  • RAM limits in Windows 10, Windows 8.1 Professional – 4GB on x86, 512GB on x64
  • RAM limits in Windows 10, Windows 8.1 – 4GB on x86, 128GB on x64

The screenshot below lists the RAM limit for Windows 10:

You also need to be careful at this official explanation related to how graphics cards and other devices affect memory limits:

Devices have to map their memory below 4 GB for compatibility with non-PAE-aware Windows releases. Therefore, if the system has 4GB of RAM, some of it is either disabled or is remapped above 4GB by the BIOS. If the memory is remapped, X64 Windows can use this memory. X86 client versions of Windows don’t support physical memory above the 4GB mark, so they can’t access these remapped regions.

Any X64 Windows or X86 Server release can.X86 client versions with PAE enabled do have a usable 37-bit (128 GB) physical address space. The limit that these versions impose is the highest permitted physical RAM address, not the size of the IO space. That means PAE-aware drivers can actually use physical space above 4 GB if they want. For example, drivers could map the “lost” memory regions located above 4 GB and expose this memory as a RAM disk.

Unfortunately, although Windows 10 supports more RAM, sometimes computers can’t access all of it. If you’re experiencing the same problem, check out this guide to learn what you can do if Windows 10 won’t read all RAM.

What about you – are you running a monster of a machine on your device? What is your RAM limit in Windows 10, Windows 8 and Windows 8.1?

RELATED STORIES TO CHECK OUT:

Memory Limits for Windows and Windows Server Releases

This topic describes the memory limits for supported Windows and Windows Server releases.

Limits on memory and address space vary by platform, operating system, and by whether the IMAGE_FILE_LARGE_ADDRESS_AWARE value of the LOADED_IMAGE structure and 4-gigabyte tuning (4GT) are in use. IMAGE_FILE_LARGE_ADDRESS_AWARE is set or cleared by using the /LARGEADDRESSAWARE linker option.

4-gigabyte tuning (4GT), also known as application memory tuning, or the /3GB switch, is a technology (only applicable to 32 bit systems) that alters the amount of virtual address space available to user mode applications. Enabling this technology reduces the overall size of the system virtual address space and therefore system resource maximums. For more information, see What is 4GT.

Читайте также:  Разметка файловой системы linux

Limits on physical memory for 32-bit platforms also depend on the Physical Address Extension (PAE), which allows 32-bit Windows systems to use more than 4 GB of physical memory.

Memory and Address Space Limits

The following table specifies the limits on memory and address space for supported releases of Windows. Unless otherwise noted, the limits in this table apply to all supported releases.

Memory type Limit on X86 Limit in 64-bit Windows
User-mode virtual address space for each 32-bit process 2 GB
Up to 3 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE and 4GT
2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (default)
4 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE set
User-mode virtual address space for each 64-bit process Not applicable With IMAGE_FILE_LARGE_ADDRESS_AWARE set (default):
x64: WindowsВ 8.1 and Windows ServerВ 2012В R2 or later: 128 TB
x64: Windows 8 and Windows Server 2012 or earlier 8 TB
Intel Itanium-based systems: 7 TB

2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared

Kernel-mode virtual address space 2 GB
From 1 GB to a maximum of 2 GB with 4GT
WindowsВ 8.1 and Windows ServerВ 2012В R2 or later: 128 TB
Windows 8 and Windows Server 2012 or earlier 8 TB
Paged pool 384 GB or system commit limit, whichever is smaller. WindowsВ 8.1 and Windows ServerВ 2012В R2: 15.5 TB or system commit limit, whichever is smaller.
Windows ServerВ 2008В R2, WindowsВ 7, Windows ServerВ 2008 and WindowsВ Vista: Limited by available kernel-mode virtual address space. Starting with WindowsВ Vista with Service PackВ 1 (SP1), the paged pool can also be limited by the PagedPoolLimit registry key value.
Windows Home Server and Windows ServerВ 2003: 530 MB
WindowsВ XP: 490 MB

384 GB or system commit limit, whichever is smaller WindowsВ 8.1 and Windows ServerВ 2012В R2: 15.5 TB or system commit limit, whichever is smaller.
Windows ServerВ 2008В R2, WindowsВ 7, Windows ServerВ 2008 and WindowsВ Vista: 128 GB or system commit limit, whichever is smaller
Windows ServerВ 2003 and WindowsВ XP: Up to 128 GB depending on configuration and RAM.

Nonpaged pool 75% of RAM or 2 GB, whichever is smaller. WindowsВ 8.1 and Windows ServerВ 2012В R2: RAM or 16 TB, whichever is smaller (address space is limited to 2 x RAM).
WindowsВ Vista: Limited only by kernel mode virtual address space and physical memory. Starting with WindowsВ Vista with SP1, the nonpaged pool can also be limited by the NonPagedPoolLimit registry key value.
Windows Home Server, Windows ServerВ 2003 and WindowsВ XP: 256 MB, or 128 MB with 4GT.

RAM or 128 GB, whichever is smaller (address space is limited to 2 x RAM) WindowsВ 8.1 and Windows ServerВ 2012В R2: RAM or 16 TB, whichever is smaller (address space is limited to 2 x RAM).
Windows ServerВ 2008В R2, WindowsВ 7 and Windows ServerВ 2008: 75% of RAM up to a maximum of 128 GB
WindowsВ Vista: 40% of RAM up to a maximum of 128 GB.
Windows ServerВ 2003 and WindowsВ XP: Up to 128 GB depending on configuration and RAM.

System cache virtual address space (physical size limited only by physical memory) Limited by available kernel-mode virtual address space or the SystemCacheLimit registry key value.
WindowsВ 8.1 and Windows ServerВ 2012В R2: 16 TB.
WindowsВ Vista: Limited only by kernel mode virtual address space. Starting with WindowsВ Vista with SP1, system cache virtual address space can also be limited by the SystemCacheLimit registry key value.
Windows Home Server, Windows ServerВ 2003 and WindowsВ XP: 860 MB with LargeSystemCache registry key set and without 4GT; up to 448 MB with 4GT.

Always 1 TB regardless of physical RAM WindowsВ 8.1 and Windows ServerВ 2012В R2: 16 TB.
Windows ServerВ 2003 and WindowsВ XP: Up to 1 TB depending on configuration and RAM.

Physical Memory Limits: Windows 10

The following table specifies the limits on physical memory for WindowsВ 10.

Version Limit on X86 Limit on X64
WindowsВ 10 Enterprise 4 GB 6 TB
WindowsВ 10 Education 4 GB 2 TB
WindowsВ 10 Pro for Workstations 4 GB 6 TB
WindowsВ 10 Pro 4 GB 2 TB
WindowsВ 10 Home 4 GB 128 GB

Physical Memory Limits: Windows Server 2016

The following table specifies the limits on physical memory for Windows ServerВ 2016.

Version Limit on X64
Windows ServerВ 2016 Datacenter 24 TB
Windows ServerВ 2016 Standard 24 TB

Physical Memory Limits: Windows 8

The following table specifies the limits on physical memory for WindowsВ 8.

Version Limit on X86 Limit on X64
WindowsВ 8 Enterprise 4 GB 512 GB
WindowsВ 8 Professional 4 GB 512 GB
WindowsВ 8 4 GB 128 GB

Physical Memory Limits: Windows Server 2012

The following table specifies the limits on physical memory for Windows ServerВ 2012. Windows ServerВ 2012 is available only in X64 editions.

Version Limit on X64
Windows ServerВ 2012 Datacenter 4 TB
Windows ServerВ 2012 Standard 4 TB
Windows ServerВ 2012 Essentials 64 GB
Windows ServerВ 2012 Foundation 32 GB
Windows Storage Server 2012 Workgroup 32 GB
Windows Storage Server 2012 Standard 4 TB
Hyper-V Server 2012 4 TB

Physical Memory Limits: Windows 7

The following table specifies the limits on physical memory for WindowsВ 7.

Version Limit on X86 Limit on X64
WindowsВ 7 Ultimate 4 GB 192 GB
WindowsВ 7 Enterprise 4 GB 192 GB
WindowsВ 7 Professional 4 GB 192 GB
WindowsВ 7 Home Premium 4 GB 16 GB
WindowsВ 7 Home Basic 4 GB 8 GB
WindowsВ 7 Starter 2 GB N/A

Physical Memory Limits: Windows Server 2008 R2

The following table specifies the limits on physical memory for Windows ServerВ 2008В R2. Windows ServerВ 2008В R2 is available only in 64-bit editions.

Version Limit on X64 Limit on IA64
Windows ServerВ 2008В R2 Datacenter 2 TB
Windows ServerВ 2008В R2 Enterprise 2 TB
Windows ServerВ 2008В R2 for Itanium-Based Systems 2 TB
Windows ServerВ 2008В R2 Foundation 8 GB
Windows ServerВ 2008В R2 Standard 32 GB
Windows HPC Server 2008 R2 128 GB
Windows Web Server 2008 R2 32 GB

Physical Memory Limits: Windows Server 2008

The following table specifies the limits on physical memory for Windows ServerВ 2008. Limits greater than 4 GB for 32-bit Windows assume that PAE is enabled.

Version Limit on X86 Limit on X64 Limit on IA64
Windows ServerВ 2008 Datacenter 64 GB 1 TB
Windows ServerВ 2008 Enterprise 64 GB 1 TB
Windows ServerВ 2008 HPC Edition 128 GB
Windows ServerВ 2008 Standard 4 GB 32 GB
Windows ServerВ 2008 for Itanium-Based Systems 2 TB
Windows Small Business Server 2008 4 GB 32 GB
Windows Web Server 2008 4 GB 32 GB

Physical Memory Limits: Windows Vista

The following table specifies the limits on physical memory for WindowsВ Vista.

Version Limit on X86 Limit on X64
WindowsВ Vista Ultimate 4 GB 128 GB
WindowsВ Vista Enterprise 4 GB 128 GB
WindowsВ Vista Business 4 GB 128 GB
WindowsВ Vista Home Premium 4 GB 16 GB
WindowsВ Vista Home Basic 4 GB 8 GB
WindowsВ Vista Starter 1 GB

Physical Memory Limits: Windows Home Server

Windows Home Server is available only in a 32-bit edition. The physical memory limit is 4 GB.

Physical Memory Limits: Windows Server 2003 R2

The following table specifies the limits on physical memory for Windows ServerВ 2003В R2. Limits over 4 GB for 32-bit Windows assume that PAE is enabled.

Version Limit on X86 Limit on X64
Windows ServerВ 2003В R2 Datacenter Edition 64 GB
(16 GB with 4GT)
1 TB
Windows ServerВ 2003В R2 Enterprise Edition 64 GB
(16 GB with 4GT)
1 TB
Windows ServerВ 2003В R2 Standard Edition 4 GB 32 GB

Physical Memory Limits: Windows Server 2003 with Service Pack 2 (SP2)

The following table specifies the limits on physical memory for Windows ServerВ 2003 with Service PackВ 2 (SP2). Limits over 4 GB for 32-bit Windows assume that PAE is enabled.

Version Limit on X86 Limit on X64 Limit on IA64
Windows ServerВ 2003 with Service PackВ 2 (SP2), Datacenter Edition 64 GB
(16 GB with 4GT)
1 TB 2 TB
Windows ServerВ 2003 with Service PackВ 2 (SP2), Enterprise Edition 64 GB
(16 GB with 4GT)
1 TB 2 TB
Windows Server 2003 with Service Pack 2 (SP2), Standard Edition 4 GB 32 GB

Physical Memory Limits: Windows Server 2003 with Service Pack 1 (SP1)

The following table specifies the limits on physical memory for Windows ServerВ 2003 with Service PackВ 1 (SP1). Limits over 4 GB for 32-bit Windows assume that PAE is enabled.

Version Limit on X86 Limit on X64 Limit on IA64
Windows ServerВ 2003 with Service PackВ 1 (SP1), Datacenter Edition 64 GB
(16 GB with 4GT)
X64 1 TB 1 TB
Windows ServerВ 2003 with Service PackВ 1 (SP1), Enterprise Edition 64 GB
(16 GB with 4GT)
X64 1 TB 1 TB
Windows Server 2003 with Service Pack 1 (SP1), Standard Edition 4 GB 32 GB

Physical Memory Limits: Windows Server 2003

The following table specifies the limits on physical memory for Windows ServerВ 2003. Limits over 4 GB for 32-bit Windows assume that PAE is enabled.

Version Limit on X86 Limit on IA64
Windows ServerВ 2003, Datacenter Edition 64 GB
(16 GB with 4GT)
512 GB
Windows ServerВ 2003, Enterprise Edition 64 GB
(16 GB with 4GT)
512 GB
Windows ServerВ 2003, Standard Edition 4 GB
Windows ServerВ 2003, Web Edition 2 GB
Windows Small Business Server 2003 4 GB
Windows Compute Cluster ServerВ 2003 32 GB
Windows Storage ServerВ 2003, Enterprise Edition 8 GB
Windows Storage ServerВ 2003 4 GB

Physical Memory Limits: Windows XP

The following table specifies the limits on physical memory for WindowsВ XP.

Version Limit on X86 Limit on X64 Limit on IA64
WindowsВ XP 4 GB 128 GB 128 GB (not supported)
WindowsВ XP Starter Edition 512 MB N/A N/A

Physical Memory Limits: Windows Embedded

The following table specifies the limits on physical memory for Windows Embedded.

Version Limit on X86 Limit on X64
Windows XP Embedded 4 GB
Windows Embedded Standard 2009 4 GB
Windows Embedded Standard 7 4 GB 192 GB

How graphics cards and other devices affect memory limits

Devices have to map their memory below 4 GB for compatibility with non-PAE-aware Windows releases. Therefore, if the system has 4GB of RAM, some of it is either disabled or is remapped above 4GB by the BIOS. If the memory is remapped, X64 Windows can use this memory. X86 client versions of Windows don’t support physical memory above the 4GB mark, so they can’t access these remapped regions. Any X64 Windows or X86 Server release can.

X86 client versions with PAE enabled do have a usable 37-bit (128 GB) physical address space. The limit that these versions impose is the highest permitted physical RAM address, not the size of the IO space. That means PAE-aware drivers can actually use physical space above 4 GB if they want. For example, drivers could map the «lost» memory regions located above 4 GB and expose this memory as a RAM disk.

Оцените статью
Adblock
detector