Форум Эму-Россия http://forum.emu-russia.net/ |
|
Ошибка reserve memory http://forum.emu-russia.net/viewtopic.php?f=25&t=5885 |
Страница 1 из 1 |
Автор: | Rayne [ 21 мар 2015, 20:52 ] |
Заголовок сообщения: | Ошибка reserve memory |
Эмулятор выдает ошибку "can't reserve 512 bytes of memory for the membase". Ранее все работало отлично, но после какого-то глюка при запуске эмулятора вылетает ошибка. Перестановка дров, программ и даже системы не помогла((( Как исправить, подскажите! |
Автор: | CaH4e3 [ 22 мар 2015, 01:17 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
выключить нового касперского лол |
Автор: | Rayne [ 22 мар 2015, 12:11 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
Не помогает, с выключенным антивирусом проблема та же((( |
Автор: | Wind [ 22 мар 2015, 13:02 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
Видимо он все же не выключается или действительно очень мало памяти. |
Автор: | CaH4e3 [ 22 мар 2015, 13:46 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
Rayne писал(а): Не помогает, с выключенным антивирусом проблема та же((( подробности тут http://code.google.com/p/demul/issues/d ... colspec=ID Type Status Priority Reporter Owner Summary и тут http://www.emu-land.net/forum/index.php ... msg1109061 |
Автор: | Rayne [ 24 мар 2015, 00:33 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
Спасибо! |
Автор: | AntZ [ 25 мар 2015, 19:39 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
Rayne, можешь попробовать скачать с сайта microsoft утилиту VMMap. Она позволяет исследовать виртуальное адресное пространство процессов. Натрави её на Demul во время воспроизведения ошибки. Обрати внимание на вот это число: Вложение: 1.png [ 29.51 КБ | Просмотров: 8223 ] Оно показыват самый большой непрерывный свободный блок в адресном пространтсве процесса. Если оно меньше 524 288, то значит адресное пространтсво процесса с Demul неудачным образом фрагментировано и выделить блок нужного размера невозможно. Не потому что мало памяти, а потому что блок размером 512 Mb просто некуда впихнуть в адресное пространство процесса. На фрагментацию процесса влияют множество факторов: то, каким образом сам Demul запрашивает память, то как Windows решит её в данный момент выдать, то как Windows решит разместить DLL-ки в адресном пространстве процесса, и прочее другое. Также, очень часто антивирусы и файрволы инжектят свои DLL-ки в пользовательские процессы, что может вызывать дополнительную фрагментацию. Но это делают не только антивирусы и файрволы. Вот пример: Тут можно наблюдать как словарь Lingvo нагло вторгся в чужой процесс, причём сделал это самым нахальным способом, разделив диапазон свободных адресов размером 1.2 G почти пополам: на блок ~534M и ~781M. Совершенно непонятно, почему он решил влезть именно в середину самого большого блока, но совершенно очевидно, что ещё парочка вот таких Lingvo посреди блоков 534 и 781 M и о запуске Demul можно забыть. Вот как вся эта прелесть выглядит в общем виде: Вложение: 3.png [ 16.31 КБ | Просмотров: 8223 ] Чёрная полоска посередине это и есть тот самый Lingvo. Вверху блок 534M, внизу - 781M. Можешь покопаться в своём процессе Demul и посмотреть, кто именно вызывает фрагментацию. А вообще, вопрос к разработчикам Demula, зачем им понадобился непрерывный блок памяти размером в 512M. Это нужно для эмуляции, или вы просто сразу берёте памяти сколько нужно, потому что боитесь, что Винда вам потом её не даст лол? Для 32-х битных процессов 512M это довольно дохрена. Размер адресного пространства 32-х битных процессов в Винде по умолчанию равен двум гигабайтам: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa366912(v=vs.85).aspx. Остальные 2 Гига это адреса ядра, как я понял . Это значит, что достаточно 4 аллокации в ненужных местах, и свободного блока размером в 512M уже нет. Можно попробовать включить фичу 4-Gigabyte Tuning, тогда адресов для процесса будет уже на 3 Гига. Возможно, это один из вариантов решения проблемы. При таком раскладе, возможно, имеет-таки смысл поддерживать 64-битную версию, в которой по идее таких проблем быть не должно. Или таки не жадничать, и просить у Винды по чуть-чуть. ЗЫ Если что, процесс на моих картинках это не Demul, а просто первый попавшийся 32-битный. |
Автор: | Rayne [ 25 мар 2015, 23:28 ] |
Заголовок сообщения: | Re: Ошибка reserve memory |
AntZ, огромное спасибо!!! Теперь мне наконец понятно из-за чего данная проблема образовалась. На выходных буду решать))) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |