Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.06.2015, 01:21
MaxFRiver вне форума Посмотреть профиль Отправить личное сообщение для MaxFRiver Найти все сообщения от MaxFRiver
  № 1  
Ответить с цитированием
MaxFRiver

Регистрация: Jun 2015
Сообщений: 7
По умолчанию Нагрузка на процессор в Chrome

Размер флеш ролика на всю страницу.
В ENTER_FRAME происходит отрисовка анимации в векторе покадрово, движения непрерывные.
FPS установленна на 30.
При тестировании ролика вне браузера со всеми вычислениями нагрузка на процессор, равномерна, около 25%.
Такая же нагрузка при тестировании Mozilla FireFox (plugin-container.exe) и в IExplorer

Но при запуске флеш в браузере Chrome (Adobe Flash Player - Версия: 18.0.0.194, Shockwave Flash 18.0 r0), нагрузка составляет до 95%, независимо он параметра wmode.

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

Пробовал убирать всю статику, делать фон прозрачным (wmode transparent), всё равно пока не уменьшить размер рабочей области всего флеш, в Chrome проблемы.

Подскажет ли кто, как можно повлиять на это для Chrome?

Старый 27.06.2015, 11:18
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 2  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
- попробовать избавиться от рисования вектора, рисовать битмапами.

- посмотреть зоны отрисовки, возможно хром принуждает флеш выводить весь кадр заново

Старый 27.06.2015, 17:57
MaxFRiver вне форума Посмотреть профиль Отправить личное сообщение для MaxFRiver Найти все сообщения от MaxFRiver
  № 3  
Ответить с цитированием
MaxFRiver

Регистрация: Jun 2015
Сообщений: 7
Для того чтобы размер рабочей области изменялся автоматически в случае изменения размеров страницы сайта в html вывожу с помощью swfobject.js и swffit.js.

Код вывода:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="ru">
	<head>
		<title>TestDrawObj</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css">
        <!--
			html, body {
            margin: 0;
            padding: 0;
			height: 100%;
			overflow: hidden;
            color: #000000;
            background-color: #000000;
            font-family: Arial, Helvetica, sans-serif;
            font-size: 13px;
			}
			a:link, a:visited { color: #06C; }
			a:hover { color: #C30; }
        -->
        </style>
        <!-- embedding SWF -->
		<script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript" src="swffit.js"></script>
		<script type="text/javascript">
			var flashvars = {};
			var params = {};
			params.allowfullscreen = true;
			var attributes = {};
			attributes.id = "testdraw";
			attributes.name = "testdraw";
			swfobject.embedSWF("testdraw.swf", "testdraw", "100%", "100%", "9.0.0", false, flashvars, params, attributes);
			swffit.fit("testdraw", 200, 200, 1920, 1080);
		</script>
        <!-- embedding SWF -->
	</head>
	<body>
		<!-- flash template SWF -->
			<div id="testdraw">
                <br /><br />
                <a href="http://www.adobe.com/go/getflashplayer" target="_blank">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                </a>
			</div>
		<!-- flash template SWF --> 
	</body>
</html>
Впрочем независимо от того чем показываю, при изменениях рабочей области автоматически или вручную, будь она даже прозрачная,
только в Chrome наблюдается изменение нагрузки на процессор в случае увеличения её размера.

В первом случае обновляю в векторе:

Код:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

var ObjSh: Shape = new Shape();
var ObjGrp: Graphics = ObjSh.graphics;
var ObjAng: Number = 0;
var ObjRad: int = 70;
var CntAng: int = 4;
var CenterX: Number = stage.stageWidth / 2;
var CenterY: Number = stage.stageHeight / 2;

addChild(ObjSh);

addEventListener(Event.ENTER_FRAME, doUpdate);
function doUpdate(evt:Event):void 
{
	var Ang, PosX, PosY, CurRad: Number;
	ObjGrp.clear();
	ObjGrp.lineStyle(1, 0xFFFFFF, 1);
	for (var I: int = 0; I < (CntAng + 1); I++)
	{
		Ang = ObjAng + I * 2 * Math.PI / CntAng;
		PosX = CenterX + Math.cos(Ang) * ObjRad;
		PosY = CenterY + Math.sin(Ang) * ObjRad;
		if (I == 0) ObjGrp.moveTo(PosX, PosY) else ObjGrp.lineTo(PosX, PosY);
	}
	ObjAng += Math.PI / 150;
}

stage.addEventListener(Event.RESIZE, onResizeList);
stage.dispatchEvent(new Event(Event.RESIZE));

function onResizeList(e: Event): void
{
	CenterX = stage.stageWidth / 2;
	CenterY = stage.stageHeight / 2;
}
Во втором случае обновляю в растре:

Код:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

var DrawBD: BitmapData = new BitmapData(200, 200, true, 0x00000000);
var DrawBt: Bitmap = new Bitmap(DrawBD);
addChild(DrawBt);

var ObjBD: BitmapData = new BitmapData(200, 200, true, 0x00000000);
var ObjBt: Bitmap = new Bitmap(ObjBD);
ObjBt.x = - ObjBD.width / 2;
ObjBt.y = - ObjBD.height / 2;

var ObjSh: Shape = new Shape();
var ObjGrp: Graphics = ObjSh.graphics;
ObjGrp.lineStyle(1, 0xFFFFFF, 1);
ObjGrp.drawRect(DrawBD.width / 2 - 50, DrawBD.height / 2 - 50, 100, 100);

ObjBD.draw(ObjSh);

var ObjSp: Sprite = new Sprite();
ObjSp.addChild(ObjBt);

var ObjAng: Number = 0;

addEventListener(Event.ENTER_FRAME, doUpdate);

function doUpdate(e: Event):void 
{
	var Mtx: Matrix = new Matrix();
	Mtx.createBox(1, 1, ObjAng, DrawBD.width / 2, DrawBD.height / 2);
	
	DrawBD.fillRect(DrawBD.rect, 0x00000000);
	DrawBD.draw(ObjSp, Mtx);
	ObjAng += Math.PI / 150;
}

stage.addEventListener(Event.RESIZE, onResizeList);
stage.dispatchEvent(new Event(Event.RESIZE));

function onResizeList(e: Event): void
{
	DrawBt.x = stage.stageWidth / 2 - DrawBD.width / 2;
	DrawBt.y = stage.stageHeight / 2 - DrawBD.height / 2;
}
При выводе в растре, нагрузка для всех вариантов вывода немного больше, но Chrome попрежнему умножает нагрузку в разы, в зависимости от размера рабочей области.
То что Chrome прорисовывает заново весь флеш это понятно, непонятно следующее:

1. Возможно ли загрузчиком флеш или html кодом повлиять на это?
2. Может ли проблема заключаться именно в моём Chrome или в моей системе?

Старый 27.06.2015, 19:26
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 4  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
Возможно это связано с PPAPI, и полным выводом станицы через GPU
сейчас попробую проверить на игре со старлингом

Старый 28.06.2015, 13:40
MaxFRiver вне форума Посмотреть профиль Отправить личное сообщение для MaxFRiver Найти все сообщения от MaxFRiver
  № 5  
Ответить с цитированием
MaxFRiver

Регистрация: Jun 2015
Сообщений: 7
Сейчас в обновленных версиях также используется PPAPI?

В chrome://plugins/ выводит:

Adobe Flash Player - Версия: 18.0.0.194
Shockwave Flash 18.0 r0

В chrome://gpu/ пишет:

Graphics Feature Status:

Canvas: Software only, hardware acceleration unavailable
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Rasterization: Hardware accelerated
Threaded Rasterization: Enabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
WebGL: Hardware accelerated

Driver Bug Workarounds:

clear_uniforms_before_first_program_use
disable_d3d11
exit_on_context_lost
scalarize_vec_and_mat_constructor_args
use_current_program_after_successful_link

Problems Detected:

Hardware video decode is only supported in win7+: 159458
Disabled Features: accelerated_video_decode
Disable GPU on all Windows versions prior to and including Vista: 315199
Disabled Features: all
GPU rasterization is blacklisted on non-Android: 362779
Disabled Features: gpu_rasterization
Always call glUseProgram after a successful link to avoid a driver bug: 349137
Applied Workarounds: use_current_program_after_successful_link
Some drivers are unable to reset the D3D device in the GPU process sandbox
Applied Workarounds: exit_on_context_lost
Disable use of Direct3D 11 on Windows Vista and lower
Applied Workarounds: disable_d3d11
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Disable D3D11 on older nVidia drivers: 349929
Applied Workarounds: disable_d3d11
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Raster is using a single thread.
Disabled Features: multiple_raster_threads


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

Все это для меня особенно критично, когда начинает происходить что либо сложнее того что я привел в примере, так сhrome ложит процессор (E8400 + Nvidia128бит) на лопатки, хотя размеры динамических объектов незначительные, при этом на фоне один большой статичный битмап, но как я говорил и без него почти также.

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

Старый 28.06.2015, 14:11
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 6  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
собрал игру на старлинг, ничего не тормозит
в хроме нормально, 60 фпс, две текстуры по 2048*2048
разрешение стола 2500*1600 окно чуть меньше, но не суть
флеш - 18.0.0.194
хром - 43.0.2357.130 m
win 7 x64
nvidia 610gt 64bit - загрузку видно на скрине 100%, но это почти самая дешевая карта сейчас на рынке
цпу - i5-2500 4 ядра, не нагружен

проект собран на flex 4.6 +air 18 sdk (компилятор 2.0) flashdevelop

никаких флешовых вещей поверх старлинга нет

видимо наступает эра GPU-онли флеша

игра - https://www.mm-game.ru/p/ (сертификат надо принять)
Миниатюры
Нажмите на изображение для увеличения
Название: 2500_chrome.jpg
Просмотров: 139
Размер:	297.2 Кб
ID:	31667  


Последний раз редактировалось ShockWave512; 28.06.2015 в 14:55.
Старый 28.06.2015, 15:36
MaxFRiver вне форума Посмотреть профиль Отправить личное сообщение для MaxFRiver Найти все сообщения от MaxFRiver
  № 7  
Ответить с цитированием
MaxFRiver

Регистрация: Jun 2015
Сообщений: 7
У меня 100% нагрузки.

Нажмите на изображение для увеличения
Название: новый-1.jpg
Просмотров: 222
Размер:	180.5 Кб
ID:	31668
Нажмите на изображение для увеличения
Название: новый-2.jpg
Просмотров: 261
Размер:	191.2 Кб
ID:	31669

Выяснил, все же используется ppapi:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --type=ppapi --channel="1060.76.91971394\1007204892" --ppapi-flash-args=enable_hw_video_decode=1 --lang=ru --ignored=" --type=renderer " /prefetch:-632637702"

А в Firefox: 2-4%

Старый 28.06.2015, 15:56
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 8  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
тогда не знаю что предположить,

а дебаг в хроме работает? тормознуть и посмотреть на данные стейджа и Capabilities, может он там рисует как не так

если поискать другие совместимые версии флеша?

поиграть с хтмл, как например голая флешка в браузере работает?

Старый 28.06.2015, 16:20
MaxFRiver вне форума Посмотреть профиль Отправить личное сообщение для MaxFRiver Найти все сообщения от MaxFRiver
  № 9  
Ответить с цитированием
MaxFRiver

Регистрация: Jun 2015
Сообщений: 7
Если в флеш убрать с рабочей области движущие объекты, даже если они просчитываются дальше, нагрузка сразу падает почти до нуля, хотя вычислений очень много.
Получается дело именно с обновлением графики.

Все дело в том, что мои винды были установлены недавно с нуля, после установил последние версии драйверов, chrome установил онлайн. После нигде ничего не настраивалось, т.е. большое количество систем имеющих WinXP + Chrome, попадают в категорию огромных тормозов при использовании как моего так и вашего сайта, и это касается именно флеш, так как на других движках с этим проблемы не замечал. Также нет проблемы, если происходит вывод видео в флеш проигрывателе.

Старый 28.06.2015, 16:31
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 10  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
доля хр меньше 20% - http://itc.ua/blogs/u-14-letney-wind...este-vzyatyih/

может забить?

Сейчас поиграть не могу с хр/хромом, может позже

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.