Я разрабатываю приложение (XNA Game) для XBOX, которое является довольно простым приложением.Стартовая страница содержит плитки с движущимися изображениями GIF.Эти gif-изображения фактически являются png-изображениями, которые загружаются один раз каждой плиткой и помещаются в массив.Затем, используя определенную задержку, эти изображения воспроизводятся (с помощью счетчика, который увеличивается каждый раз, когда проходит задержка).
Все это работает хорошо, однако я заметил небольшое отставание каждые x секунд в движении GIFизображений.Затем я начал добавлять некоторые тесты:
http://gyazo.com/f5fe0da3ff81bd45c0c52d963feb91d8
Как вы можете видеть, FPS довольно низок для такой простой программы (Это отладка, когда приложение запускается изСам Xbox, я получаю в среднем 62fps).2 важных параметра: Graphics.SynchronizeWithVerticalRetrace = false;IsFixedTimeStep = false;
Изменение isFixedTimeStep в значение true увеличивает лаг.Панель настроек имеет колеса, которые вращаются, и вы можете видеть, что колеса вращаются немного назад каждые x секунд.То же самое относится к SynchronizeWVR, также увеличивает задержку.
Я заметил связь между задержкой и моментом, когда включается сборщик мусора, каждый раз, когда он включается, возникает задержка ...
Не обращайте внимания на MAX HMU (использование памяти кучи), так как для этого требуется время запуска, среднее значение более реалистично.
Вот еще один экран монитора производительности, однако я не понимаю,многое из этого инструмента, впервые я использую его ... надеюсь, это поможет:
http://gyazo.com/f70a3d400657ac61e6e9f2caaaf17587