Jump to content
Korean Random

XVM: Падение FPS, микрофризы. Исследуем и исправляем.


POLIROID

Recommended Posts

@sirmax, Щас буду тестить по свфкам, а вот информация к размышлению пока от другого человека:

"лично я у себя в модах 2 раза делал фризы во время разработки
и всегда это было связано с : BigWorld.callback(0.1, function)
когда в function() у меня была хитро вые***я логика
либо было много таких BigWorld.callback(0.1, function) нагенерено"

Edited by EXPROMT_MAX
Link to comment
Short link
Share on other sites

, Просто свфки удалять и пробовать.

@sirmax, И вот еще один очень интересный лог от пользователя, может тоже помоч:

[ERROR.GUI] (scripts/client/gui/Scaleform/Flash.py, 268): Error: Error #1023: Stack overflow occurred.
[ERROR.GUI] (scripts/client/gui/Scaleform/Flash.py, 268): Error: Error #1023: Stack overflow occurred.
 at net.wg.infrastructure.managers.utils.impl::Scheduler/processFrame()
 at net.wg.infrastructure.managers.utils.impl::Scheduler/updateTimer()
 at net.wg.infrastructure.managers.utils.impl::Scheduler/scheduleTask()
 at net.wg.infrastructure.managers.utils.impl::Scheduler/envokeInNextFrame()
 at xvm.hangar.components.BattleLoading::BattleLoadingItemRenderer/attachClanIconToPlayer()[/home/xvm/xvm-build/repo/src/xvm/src;xvm/hangar/components/BattleLoading;BattleLoadingItemRenderer.as:198]
 at Task/invoke()
[WARNING] (scripts/client/account_helpers/CustomFilesCache.py, 190): Http error. Code: 404, url: http://stat.modxvm.com/emblems/top/{size}/88962.png
[WARNING] (scripts/client/account_helpers/CustomFilesCache.py, 190): Http error. Code: 404, url: http://stat.modxvm.com/emblems/top/{size}/6235.png
[WARNING] (scripts/client/account_helpers/CustomFilesCache.py, 190): Http error. Code: 404, url: http://stat.modxvm.com/emblems/top/{size}/14677.png

"tack overflow occurred"

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

Edited by EXPROMT_MAX
  • Upvote 1
Link to comment
Short link
Share on other sites

и всегда это было связано с : BigWorld.callback(0.1, function)

когда в function() у меня была хитро вые***я логика

либо было много таких BigWorld.callback(0.1, function) нагенерено"

Это все понятно и известно. В последних билдах кое-что было подправлено как раз в этом направлении.

"tack overflow occurred"

Часто дергается и переполнение стэка

Полный лог нужен, с номером билда.

Хотя и так вижу, что это не последний билд, в нем как раз это и было исправлено.

Link to comment
Short link
Share on other sites

@sirmax, Щас буду тестить по свфкам, а вот информация к размышлению пока от другого человека:

"лично я у себя в модах 2 раза делал фризы во время разработки

и всегда это было связано с : BigWorld.callback(0.1, function)

когда в function() у меня была хитро вые***я логика

либо было много таких BigWorld.callback(0.1, function) нагенерено"

 

Сам принцип callback вызывов не дает ни лагов ни просадки производительности, если при вызове этих функций процессору не нужно совершать лишних действий. А многие вешают на эти вызовы функции, которые кучу разных обращений и не нужных расчетов с результатом в пустоту делают тем самым циклически и нагружают цп. В callback функциях нужно четко прописать систему логической фильтрации чтобы ни каких лишних расчетов не производилось а все вызовы с результатом в пустоту отсекались фильтрами. Тогда ни каких проблем не будет.

Link to comment
Short link
Share on other sites

@sirmax, Вот что сделали:

Покопавшись в xvm_main и в xvm_ping, кое чего добились:

Убавили фризы при "замесах" - когда засвечены и теряется хп. Но это, когда противники рядом.

 

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

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

Вот это для Максима разобранные файлы  10.zip

А это для тех, кто готов потестить 01.zip

Билд 3788

 

Дальше буду тестить по свфкам.

Из предварительных тестов по свфкам:

Самые большие фризы, когда стоят: battle.swf, VehicleMarkersManager.swf и PlayersPanel.swf.

По убывающей.

Edited by EXPROMT_MAX
  • Upvote 3
Link to comment
Short link
Share on other sites

Не понятно зачем они декомпилировали *.pyc файлы, а не взяли исходники. Копаться и искать изменения мне как-то лениво.


ага, значит, пингер:

--- pinger_orig.py 2015-02-12 18:40:36.674523500 +0200
+++ pinger_fixed.py 2015-02-12 18:40:38.942653200 +0200
@@ -39,13 +39,13 @@
         self.thread = threading.Thread(target=self._pingAsync)
         self.thread.daemon = False
         self.thread.start()
-        BigWorld.callback(0.05, self._checkResult)
+        BigWorld.callback(0.1, self._checkResult)
         return

     def _checkResult(self):
         with self.lock:
             if self.resp is None:
-                BigWorld.callback(0.05, self._checkResult)
+                BigWorld.callback(0.1, self._checkResult)
                 return
             try:
                 self._respond()

Это фигня, что 50мс, что 100 мс - разницы не будет.

Тем более, что к бою это вообще не относится.


В xvm_main аналогично. Их изменения никак не повлияют на процесс боя.

Edited by sirmax
Link to comment
Short link
Share on other sites

Из предварительных тестов по свфкам:

Самые большие фризы, когда стоят: battle.swf, VehicleMarkersManager.swf и PlayersPanel.swf.

По убывающей.

sirmax, что можно в них поодключать для тестов? декомпиляторы имеются.

Link to comment
Short link
Share on other sites

sirmax, что можно в них поодключать для тестов? декомпиляторы имеются.

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

Link to comment
Short link
Share on other sites

В 0.9.6 появились дикие просадки по производительности,а значит и фпс.Именно первый бой после чистки кеша,потом вроде норм.

Link to comment
Short link
Share on other sites

Версия XVM какая?


Сообщение перенесено из лички:

@sirmax, Привет. Начиная с прошлого патча пользователи просто неимоверно вопят про лаги. Ну ты помнишь, выясняли, что экстра поля влияют итд. Это все влияет, тесты были верными, но....

Изменилось ли что-то в 6.0.0.3?


Напоминаю суть "проблемы": при включении  миникарты из ХВМ и миникарты от ВГ одновременно производительность увеличивается и ФПС выше, чем если использовать просто миникарту ХВМ. При этом отображаются и подписи танков, и места последнего засвета, и квадраты/круги видлимости, однако двоятся названия танков. Миникарта выглядит вот так:

Что-нибудь изменилось в 6.0.0.3?

Link to comment
Short link
Share on other sites

@sirmax, Только сейчас появилась возможность, ставлю, буду пробовать. Обязательно отпишусь.

Пысы. Мне нравится твой ченч лог - "исправлены ошибки"  )))

Edited by EXPROMT_MAX
  • Upvote 1
Link to comment
Short link
Share on other sites

Версия XVM какая?

Изменилось ли что-то в 6.0.0.3?

Что-нибудь изменилось в 6.0.0.3?

Если вопрос ко мне,то от 6.0 до 6.0.0.2+ночники некоторые.Особенно в замесах вообще фпс до 20 падает,естественно с фризами.Последующие бои,после первого,более менее.Правда конфиг довольно таки нагружен,но раньше такого не было.Не могу сказать,что причина именно в хвм потому что без него по просту не играл))))Логи хвм вроде без аномалий,питон вообще девственно чист,только прогрузка.

Link to comment
Short link
Share on other sites

@sirmax, Я так понимаю, последний ночник и релиз-это одно и то же?

В общем так. Лагов стало  поменьше, фпс вроде даже повыше (!?-удивлен), но... фризы усилились очень сильно, что абсолютно нивелирует возможные улучшения.

Общее впечатление - стало только хуже.

 

Пысы: Завтра будет время поэкспериментировать с свфками плотнее, но вот что уже выяснил:

Если удалить все свфки из scaleform, то остаются едва заметные фризы. То есть получается, что  питон тоже влияет. Но если бы так было с свфками, то вопрос бы вообще не поднимался, настолько они еле заметные.

Основные виновники фризов:

1) battle.swf - наиболее много фризов появляется, когда добавляется он. При добавлении к battle.swf  файла VehicleMarkersManager.swf фризы возрастают очень сильно. Если убрать battle.swf и оставить VehicleMarkersManager.swf, фризы тоже есть, но меньше.

2) При добавлении только PlayersPanel.swf фризы, При подключении к нему battle.swf также усиливаются, но не так сильно как при совместном.

И 1 и 2 пункт выполнялись с файлом xvm.swf. ( То есть он тоже лежал в папке scaleform)

Edited by EXPROMT_MAX
Link to comment
Short link
Share on other sites

Тестировал один бой три раза.

Графика стандартная, все настройки на минимум, дальность отрисовки на максимум.

build 3797

2015-02-13 17:57:39 - WorldOfTanks (чистый_клиент, миникарта в клиенте включена)
Frames: 8489 - Time: 165813ms - Avg: 51.196 - Min: 18 - Max: 69

2015-02-13 18:02:42 - WorldOfTanks (чистый_клиент + XVM, миникарта в клиенте включена)
Frames: 7945 - Time: 165813ms - Avg: 47.915 - Min: 21 - Max: 65

2015-02-13 18:07:08 - WorldOfTanks (чистый_клиент + XVM, миникарта в клиенте выключена)
Frames: 7320 - Time: 165938ms - Avg: 44.113 - Min: 14 - Max: 61
2015-02-13 18:50:57 - WorldOfTanks (чистый_клиент, миникарта в клиенте выключена)
Frames: 8584 - Time: 165845ms - Avg: 51.759 - Min: 23 - Max: 71

DxDiag.txt + python.log + xvm.log

test.zip

Edited by Progrev_T
Link to comment
Short link
Share on other sites

Тестировал один бой три раза.

Графика стандартная, все настройки на минимум, дальность отрисовки на максимум.

 

А можешь еще проверить чистый клиент с выключенной миникартой?
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...