Ошибка недостаточно памяти для обработки команды в варкрафте

  • #1

Не удается запустить игру, когда нажимаю кнопку «в игру» выдает ошибку:
1661008631029.png
До этого ни оффициальный, ни другие пиратки WoW’а не скачивал
8 ГБ оперативки
64 разрядная система
Антивирусник отключал, не помогло
Запускал и через start.exe и через run.exe
Запускал от имени администратора
Лаунчер скачал только сегодня, так что версия последняя

Единственное, что меня смутило, так это строчка File: d:buildserver…SFile.cpp (У меня нет диска d: есть только диск C:)

Enerlight-x5


  • #2

Не удается запустить игру, когда нажимаю кнопку «в игру» выдает ошибку:
Посмотреть вложение 400867
До этого ни оффициальный, ни другие пиратки WoW’а не скачивал
8 ГБ оперативки
64 разрядная система
Антивирусник отключал, не помогло
Запускал и через start.exe и через run.exe
Запускал от имени администратора
Лаунчер скачал только сегодня, так что версия последняя

Единственное, что меня смутило, так это строчка File: d:buildserver…SFile.cpp (У меня нет диска d: есть только диск C:)

Здравствуйте.
Выполните, пожалуйста, следующие действия:
Снимите галочку «Только чтение» с папки «World of Warcraft Sirus» и ко всем вложенным файлам.
Удалите папки Cache, Logs, WTF, а так же файл Run.exe.
Добавьте папку с игрой в исключения антивируса, отключите торрент и другие программы, которые могут использовать файлы игры.
В лаунчере смените расположение клиента игры на некорректное и закройте его(в системном трее тоже).
Запустите лаунчер от имени администратора и укажите корректный путь до папки с игрой, после чего нажмите кнопку «Проверить клиент», позволив лаунчеру закачать этот файл корректно.

  • #3

Здравствуйте.
Выполните, пожалуйста, следующие действия:
Снимите галочку «Только чтение» с папки «World of Warcraft Sirus» и ко всем вложенным файлам.
Удалите папки Cache, Logs, WTF, а так же файл Run.exe.
Добавьте папку с игрой в исключения антивируса, отключите торрент и другие программы, которые могут использовать файлы игры.
В лаунчере смените расположение клиента игры на некорректное и закройте его(в системном трее тоже).
Запустите лаунчер от имени администратора и укажите корректный путь до папки с игрой, после чего нажмите кнопку «Проверить клиент», позволив лаунчеру закачать этот файл корректно.

Не нашел папки Cache и Logs
1661016439094.png

Все остальные действия выполнил, не помогло, выдает ту же самую ошибку

  • #5

В таком случае, переустановите клиент игры полностью.
Загрузите именно наш клиент игры торрентом http://sirus.su/sirus.torrent и обновите его лаунчером

Теперь игра запускается, но получается только создать персонажа
При попытке входа в саму игру выдает ошибку
1661055929583.png

Флорин-x2


  • #6

Здравствуйте!

Удалите файлы patch-6.MPQ и patch-7.MPQ, затем запустите лаунчер, чтобы он заново загрузил эти файлы. После этого проверьте актуальность проблемы.

  • #7

Здравствуйте!

Удалите файлы patch-6.MPQ и patch-7.MPQ, затем запустите лаунчер, чтобы он заново загрузил эти файлы. После этого проверьте актуальность проблемы.

Не помогло

Флорин-x2


  • #8

Удалите дополнительно файлы common.mpq и patch-ruRU-4.mpq и сделайте проверку.

  • #9

1661079243277.png
Этот файл я не удалял, почему ошибку выдает..

Nochi-x10


  • #10

Этот файл я не удалял, почему ошибку выдает..

Подобное возникает, когда что-то мешает лаунчеру загрузить/обновить/проверить файлы. Её решением может быть отключение антивируса, брандмауэра, торрента и других программ, которые могут использовать файлы игры. Пробуйте перезапустить лаунчер от имени администратора

  • #11

Ладно, устал этим заниматься.
Спасибо модерам за то, что попытались помочь, но это не нормально, то что игра не может просто взять и заработать. Ладно бы выдало одну ошибку, с которой повозиться бы пришлось пол часика и все, но это уже треш…

Nochi-x10


  • #12

Вы выполнили рекомендации выше?

Ребята :) Который год не будет идти — это не решит данную проблему.
Данная проблема возникает только в картах, которые имеют ошибку в коде.
Это не игра сломана, а карта, в которую вы пытаетесь сыграть вылетает ошибкой.

Здесь в Фатальной ошибке написано:
Что нехватает памяти в игровом процессе для обработки объекта, который находится в карте. Видимо там слишком много переменных и триггеров, которые это задействует. По этой причине карта вылетает.

Рекомендую просто сменить карту и все :)
Я просто сам пишу код в картах своих и это проблема связанно с нарушением логики кода.

Содержание

  1. Тема: Недостаточно памяти для обработки команды.
  2. Недостаточно памяти для обработки команды.
  3. Тема: Недостаточно памяти для обработки команды.
  4. Недостаточно памяти для обработки команды.
  5. Вылетает клиент (недостаточно памяти для обработки команды)
  6. Прикрепленные изображения

Тема: Недостаточно памяти для обработки команды.

Опции темы
Отображение

Недостаточно памяти для обработки команды.

И выдает такой краш в игре :

This application has encountered a critical error:

Недостаточно памяти для обработки команды.

Requested 4793872 bytes of memory

WoWBuild: 12340
Realm: WoW Circle 3.3.5a x5 [91.235.137.40:82263]
Local Zone: Даларан, Даларан
Local Player: Epiphanye, 000000000000A5D1, (5742.06,636.874,647.922)
Total lua memory: 28862KB
Current Addon: (null)
Current Addon function: UNKNOWN
Current Addon object: (null)
Add Ons: AtlasLoot AtlasLoot_WrathoftheLichKing AtlasLootFu BadBoy Bartender4 BaudBag ChatBar Cooldowns DrDamage Grid GridAutoFrameSize InspectEquip MoveAnything PallyPower Recount TidyPlates TidyPlates_Grey TidyPlates_Neon DBM-Core Quartz
Settings:
SET locale «ruRU»
SET realmList «logon.circle-servers.com»
SET hwDetect «0»
SET gxResolution «1920×1080»
SET gxRefresh «60»
SET gxMultisample «8»
SET gxMultisampleQuality «0.000000»
SET gxFixLag «0»
SET videoOptionsVersion «3»
SET textureFilteringMode «5»
SET movie «0»
SET mouseSpeed «1»
SET Gamma «1.000000»
SET readTOS «1»
SET readEULA «1»
SET readTerminationWithoutNotice «1»
SET showToolsUI «1»
SET accounttype «LK»
SET Sound_OutputDriverName «System Default»
SET Sound_MusicVolume «0»
SET Sound_AmbienceVolume «0.5»
SET componentTextureLevel «9»
SET shadowLevel «0»
SET farclip «1277»
SET specular «1»
SET groundEffectDensity «64»
SET groundEffectDist «140»
SET environmentDetail «1.5»
SET extShadowQuality «5»
SET projectedTextures «1»
SET weatherDensity «3»
SET realmName «WoW Circle 3.3.5a x5»
SET gameTip «37»
SET checkAddonVersion «0»
SET Sound_MasterVolume «0.10000000149012»
SET Sound_SFXVolume «1»

Adapter 0 (primary):
Driver: nvldumd.dll
Version: 23.21.0013.8813
Description: NVIDIA GeForce GTX 1080 Ti
DeviceName: .DISPLAY1

Adapter 1:
Driver: nvldumd.dll
Version: 23.21.0013.8813
Description: NVIDIA GeForce GTX 1080 Ti
DeviceName: .DISPLAY2

Address Frame Logical addr Module

Showing 40/40 threads.

**** Couldn’t initialize Debug Help library, error: 8

DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE

Stack: 1024 bytes starting at (ESP = 05B6F804)

Стандартное попробуйте, снести папки cache/wtf/interface, и попробовать поиграть на пустом клиенте.
В клиенте 3.3.5 есть какие-то патчи на текстуры например?

Источник

Тема: Недостаточно памяти для обработки команды.

Опции темы
Отображение

Недостаточно памяти для обработки команды.

И выдает такой краш в игре :

This application has encountered a critical error:

Недостаточно памяти для обработки команды.

Requested 4793872 bytes of memory

WoWBuild: 12340
Realm: WoW Circle 3.3.5a x5 [91.235.137.40:82263]
Local Zone: Даларан, Даларан
Local Player: Epiphanye, 000000000000A5D1, (5742.06,636.874,647.922)
Total lua memory: 28862KB
Current Addon: (null)
Current Addon function: UNKNOWN
Current Addon object: (null)
Add Ons: AtlasLoot AtlasLoot_WrathoftheLichKing AtlasLootFu BadBoy Bartender4 BaudBag ChatBar Cooldowns DrDamage Grid GridAutoFrameSize InspectEquip MoveAnything PallyPower Recount TidyPlates TidyPlates_Grey TidyPlates_Neon DBM-Core Quartz
Settings:
SET locale «ruRU»
SET realmList «logon.circle-servers.com»
SET hwDetect «0»
SET gxResolution «1920×1080»
SET gxRefresh «60»
SET gxMultisample «8»
SET gxMultisampleQuality «0.000000»
SET gxFixLag «0»
SET videoOptionsVersion «3»
SET textureFilteringMode «5»
SET movie «0»
SET mouseSpeed «1»
SET Gamma «1.000000»
SET readTOS «1»
SET readEULA «1»
SET readTerminationWithoutNotice «1»
SET showToolsUI «1»
SET accounttype «LK»
SET Sound_OutputDriverName «System Default»
SET Sound_MusicVolume «0»
SET Sound_AmbienceVolume «0.5»
SET componentTextureLevel «9»
SET shadowLevel «0»
SET farclip «1277»
SET specular «1»
SET groundEffectDensity «64»
SET groundEffectDist «140»
SET environmentDetail «1.5»
SET extShadowQuality «5»
SET projectedTextures «1»
SET weatherDensity «3»
SET realmName «WoW Circle 3.3.5a x5»
SET gameTip «37»
SET checkAddonVersion «0»
SET Sound_MasterVolume «0.10000000149012»
SET Sound_SFXVolume «1»

Adapter 0 (primary):
Driver: nvldumd.dll
Version: 23.21.0013.8813
Description: NVIDIA GeForce GTX 1080 Ti
DeviceName: .DISPLAY1

Adapter 1:
Driver: nvldumd.dll
Version: 23.21.0013.8813
Description: NVIDIA GeForce GTX 1080 Ti
DeviceName: .DISPLAY2

Address Frame Logical addr Module

Showing 40/40 threads.

**** Couldn’t initialize Debug Help library, error: 8

DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE
DBG-MODULE

Stack: 1024 bytes starting at (ESP = 05B6F804)

Стандартное попробуйте, снести папки cache/wtf/interface, и попробовать поиграть на пустом клиенте.
В клиенте 3.3.5 есть какие-то патчи на текстуры например?

Источник

Вылетает клиент (недостаточно памяти для обработки команды)

photo 482296

Вылетает ошибка: «недостаточно памяти для обработки команды». Игра вылетает минут через 5-10, без разницы в какой локации нахожусь, но в инстах не вылетает. Спрашивал у ясеня gogle, не нашёл решения.На компе 4 гб озу, в варкрафт играю около 7 лет, никогда не было таких ошибок. Другие игры, такие как wot не вылетают.

А ответ в теме был. Даже оба.

Если приложение постоянно просит выделение дополнительной памяти, то вариантов только два:

Соответственно, и вариантов действий два:

Ну, а вот если ничего из вышеперечисленного не помогло, то уже начинаем танцевать с бубном:

P.S.: а вообще, всё сказано (но не показано) у ТСа на скриншоте.

Вылетает ошибка: «недостаточно памяти для обработки команды». Игра вылетает минут через 5-10, без разницы в какой локации нахожусь, но в инстах не вылетает. Спрашивал у ясеня gogle, не нашёл решения.На компе 4 гб озу, в варкрафт играю около 7 лет, никогда не было таких ошибок. Другие игры, такие как wot не вылетают.

Прикрепленные изображения

Попробуйте расширить виртуальную память на системном диске

64699ac71f662fb55efb20393660ce48

ecf0952d59a7146d52049c05c089c79f

a9ae3a1fbab9336b61afe344f5765c29

Попробуйте расширить виртуальную память на системном диске

пробывал, улучшило минут на 5, но всё равно со временем вируалку забивает и клиент вылетает.

Попробуй файл подкачки 8 гб сделать

Попробуй файл подкачки 8 гб сделать

как вычитал на одном из форумов: Обычная утечка памяти.. ничего неожиданного. Было на Havok, было на всех версиях Cry Engine.

P.S. c размером файла подкачки эксперементировал в доль и поперёк, помогало только увеличением времени вылета от 5 до 20 минут, но проблему не решало.

P.S.S последний раз на изе играл в мае, проблем таких не возникало, систему не менял, озу не докидывал, всё родное как было так и ничего не менялось

как вычитал на одном из форумов: Обычная утечка памяти.. ничего неожиданного. Было на Havok, было на всех версиях Cry Engine.

P.S. c размером файла подкачки эксперементировал в доль и поперёк, помогало только увеличением времени вылета от 5 до 20 минут, но проблему не решало.

P.S.S последний раз на изе играл в мае, проблем таких не возникало, систему не менял, озу не докидывал, всё родное как было так и ничего не менялось

просто из интереса, попробуй отрубить все аддоны

просто из интереса, попробуй отрубить все аддоны

при чём тут аддоны? с этой сборкой аддонов я играю давно, не обновлял не добавлял/не убовлял

при чём тут аддоны? с этой сборкой аддонов я играю давно, не обновлял не добавлял/не убовлял

Скорее всего у тебя просто вирус.

Скорее всего у тебя просто вирус.

да ты кэп, вирус нацеленый на wow?

Это, скорее всего, накрывается диск С. Перенеси игру на D и посмотри что будет.

У меня щас тоже часто вылетает, в основном когда лечу из даларана почти 100% краш. Началось вроде после установки win10.

Это, скорее всего, накрывается диск С. Перенеси игру на D и посмотри что будет.

а что так можно было? ты гений.

У меня щас тоже часто вылетает, в основном когда лечу из даларана почти 100% краш. Началось вроде после установки win10.

ну это просто win10, она посути сырая. У меня win7 отключён gogle chrome, и только вовка и вылетает, когда же играю в wot, а он я думаю поджирает не меньше чем вовка, в паралель ещё и по скайпу разговариваю, и в хроме музон играет и всё шито крыто, а тут проказа вылезла. Вот ток почему в цлк 25хм на личе где всё сверкает ни чего не вылетает, вот это странно

а что так можно было? ты гений.

к твоему сведению если один винчестер то без разницы c,d,e,f и тд до бесконечности сколько локальных дисков, винч то один и если накрвывается первый, то остальные не спасут, но нет у меня не накрывается винч.

P.S. проверил всё, винч, вирусы, озу, вирт память добавлял/убавлял, аддоны отключал и тд и тп, варианты просто кончились, в чём может быть проблема

Это, скорее всего, накрывается диск С. Перенеси игру на D и посмотри что будет.

у него как бы стоит на Е диске.

ТС, прогони чекдиском, может он банально натыкается на бэд сектор. У меня такое же окно вылетает при попытке начать запись, если программу открыть позже, чем саму игру. пишет то же самое. похоже, что одна ошибка на все случаи жизни.

к твоему сведению если один винчестер то без разницы c,d,e,f и тд до бесконечности сколько локальных дисков, винч то один и если накрвывается первый, то остальные не спасут, но нет у меня не накрывается винч.

P.S. проверил всё, винч, вирусы, озу, вирт память добавлял/убавлял, аддоны отключал и тд и тп, варианты просто кончились, в чём может быть проблема

Винчестер имеет разделы и кластеры, тут ты немного не прав.

у него как бы стоит на Е диске.

ТС, прогони чекдиском, может он банально натыкается на бэд сектор. У меня такое же окно вылетает при попытке начать запись, если программу открыть позже, чем саму игру. пишет то же самое. похоже, что одна ошибка на все случаи жизни.

Винчестер имеет разделы и кластеры, тут ты немного не прав.

я в курсе, просто не правильно выразился. Попробую прогнать, результат напишу

я в курсе, просто не правильно выразился. Попробую прогнать, результат напишу

прогоняй лучше на не запущенной системе, если умеешь. под PE например..

после прогона перемести вов на другой локальный диск и обратно.

Вылетает ошибка: «недостаточно памяти для обработки команды». Игра вылетает минут через 5-10, без разницы в какой локации нахожусь, но в инстах не вылетает. Спрашивал у ясеня gogle, не нашёл решения.На компе 4 гб озу, в варкрафт играю около 7 лет, никогда не было таких ошибок. Другие игры, такие как wot не вылетают.

А ответ в теме был. Даже оба.

Если приложение постоянно просит выделение дополнительной памяти, то вариантов только два:

Соответственно, и вариантов действий два:

Ну, а вот если ничего из вышеперечисленного не помогло, то уже начинаем танцевать с бубном:

P.S.: а вообще, всё сказано (но не показано) у ТСа на скриншоте.

Источник

Когда у игры неполучается выделить память, она показывает сообщение об ошибке «Недостаточно памяти для обработки команды».

Произойти это может, если память доступная процессу игры кончилась.
Даже если у вас 64-битный процессор и десятки гигабайт оперативной памяти, игра 32-битная и не может использовать больше 4-ех гигабайт памяти.
А на практике, даже больше 2-ух гигабайт будет проблемно занять, из-за особености устройства используемых варкрафтом связных списков.

В конце отчета об ошибке, создаваемого игрой при краше от нехватки памяти, можно увидеть таблицу регионов памяти.

Пример таблицы

   12  2784 e:Drive1tempbuildwar3xWar3SourceUI/CCommandButton.cpp(546)
    1   528 .FrameDef.cpp(69)
   12   768 e:drive1tempbuildwar3xwar3sourcegameCFogMaskTable.h(98)
    1    56 .CGameUI.cpp(517)
    1   512 e:Drive1tempbuildwar3xWar3SourceWorldEdit/WEUtilities.cpp(3422)
  286 12308 .W32OsISndCache.cpp(991)
  143  4004 .?AUNATIVETOKEN@@(-2)
...

Первая колонка содержит количество выделенных блоков памяти, а вторая их сумарный размер.
Дальше идет либо имя исходного файла и номер строки, либо закодированое имя типа и отрицательное число.

По моим наблюдениям, выделение памяти может также провалиться в случае, когда размер одного региона менеджера памяти достигает лимита, равного примерно 256-ми мегабайтам.
Так что, даже если память еще не закончилась, но блоков памяти в одном регионе выделено слишком много, то игра всё равно может крашнуться. Также, могу предположить, что если игра попытается одним куском выделить много памяти (например, 300 МБ), то последствия будут теми же.

По сигнатуре региона можно попытаться догадаться о причине произошедшего.
Например, если имя объекта CUnitListNode, то можно заподозрить утечки памяти, связанные с неудаляемыми групами в скрипте карты.

Для более удобного просмотра таблицы, предлагаю воспользоваться моим скриптом на питоне, который сортирует элементы таблицы и конвертирует их в более читаемый вид.
Установите python последнией версии (3.x), но может быть и на старых заработает.

wc3memsort.py

import sys
import re
from contextlib import nullcontext
from collections import namedtuple

def open_input(path):
	return open(path, 'rt') if path != '-' else nullcontext(sys.stdin)

def open_output(path):
	return open(path, 'wt') if path != '-' else nullcontext(sys.stdout)

input_path = sys.argv[1]
output_path = sys.argv[2]

with open_input(input_path) as f:
	input_data = f.readlines()

pattern = re.compile(r' *([0-9]+) +([0-9]+) +(.*)((-?[0-9]+))')

MemoryRegion = namedtuple('MemoryRegion', ['blocks_count', 'size', 'source_file', 'source_line'])

def parse_line(line):
	m = pattern.match(line)
	if m:
		return MemoryRegion(
			blocks_count = int(m.group(1)),
			size = int(m.group(2)),
			source_file = m.group(3),
			source_line = int(m.group(4)),
		)

def parse_lines(lines):
	for i, line in enumerate(lines):
		parsed_line = parse_line(line)
		if parsed_line:
			yield parsed_line
		else:
			raise Exception(f'Failed to convert line number {i+1}.')
			
memory_regions = list(parse_lines(input_data))
total_size = sum(r.size for r in memory_regions)
sorted_memory_regions = sorted(memory_regions, reverse=True, key=lambda r: r.size)
formatted_memory_regions = (format_memory_region(r) for r in sorted_memory_regions)

def format_size(size):
	suffixes = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB']

	i = 0
	while size >= 1024:
		size /= 1024
		i += 1

	if i >= len(suffixes):
		i = len(suffixes) - 1

	if i > 0:
		return f'{size:.2f} {suffixes[i]}'
	else:
		return f'{size} {suffixes[i]}'

def format_memory_region(r):
	pretty_size = format_size(r.size)
	return f'{pretty_size}t{r.blocks_count}t{r.source_file}t{r.source_line}'

with open_output(output_path) as f:
	f.write(f'total size: {format_size(total_size)}.n')
	f.write('n'.join(formatted_memory_regions))
	f.write('n')

Применение:

python wc3memsort.py <путь к файлу с исходной таблицей> <путь к файлу для записи результата>

Вместо пути может быть указан минус «-«, в таком случае для чтения или записи будет использоваться стандартный ввод/вывод.

На вход скрипт принимает не весь отчет об ошибке, а лишь фрагмент с таблицей находящийся в конце файла между разделяющими полосами.

На выходе пишется сначала сумарное количество памяти, занимаемое всеми регионами памяти, а затем таблица регионов, в которой первая колонка содержит размер региона памяти, а вторая количество блоков памяти. Дальше, как и в оригинале, идет сигнатура региона.

Пример результата:

total size: 670.44 MiB.
145.41 MiB	1584	.?AVCAgentBaseAbs@@	-2
62.51 MiB	95047	.cmemblock.cpp	372
59.05 MiB	40199	.?AVC3Vector@NTempest@@	-2
51.49 MiB	1468	.?AUCustomObjectField@@	-2
51.28 MiB	729588	.CDataAllocator.cpp	152
...

Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.

Понравилась статья? Поделить с друзьями:
  • Ошибка недостаточно памяти для обработки команды warcraft 3
  • Ошибка недостаточно памяти в сканере
  • Ошибка недостаточно памяти в coreldraw
  • Ошибка недостаточно памяти 1с при обмене
  • Ошибка невозможно подключится к серверы в battlefield