Показать сообщение отдельно
Старый 16.02.2008, 04:28
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 1  
Ответить с цитированием
LinuxVideo
Banned

Регистрация: Oct 2007
Сообщений: 269
По умолчанию Скорость работы в разных браузерах.

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

В проблемном мувике 2 BitmapData, один (2880х2880) копируется на второй (800х800), как с масштабированием, так и без (вырезался только кусочек битмапа, дабы обеспечить движение). Копирование было через draw(). Отлаживал во внешнем проигрывателе, что запускается самим флешем - все идеально. Все летает, никаких тормозов. А вот люди говорили о тормозах. Проверил:
1. Опера - летает.
2. Внешний проигрыватель - летает
3. ФаерФокс - тормоза
4. ИЕ - подтормаживает, но что-то среднее между Оперой и Мозиллой.
5. Опера или Конкьюрер под линухом - отрисовка быстрая, но идет как бы в замедленном режиме, т.е. "дропов" нет, все плавно, но не в реалтайме.

Подумалось, что может что-то не так? Ведь есть разные режимы...

Слепил:
Код:
var iii='';
var o=Capabilities;
iii+='avHardwareDisable: '+(o.avHardwareDisable?'true':'false')+"\n";
iii+='hasAccessibility: '+(o.hasAccessibility?'true':'false')+"\n";
iii+='hasAudio: '+(o.hasAudio?'true':'false')+"\n";
iii+='hasAudioEncoder: '+(o.hasAudioEncoder?'true':'false')+"\n";
iii+='hasEmbeddedVideo: '+(o.hasEmbeddedVideo?'true':'false')+"\n";
iii+='hasIME: '+(o.hasIME?'true':'false')+"\n";
iii+='hasMP3: '+(o.hasMP3?'true':'false')+"\n";
iii+='hasPrinting: '+(o.hasPrinting?'true':'false')+"\n";
iii+='hasScreenBroadcast: '+(o.hasScreenBroadcast?'true':'false')+"\n";
iii+='hasScreenPlayback: '+(o.hasScreenPlayback?'true':'false')+"\n";
iii+='hasStreamingAudio: '+(o.hasStreamingAudio?'true':'false')+"\n";
iii+='hasStreamingVideo: '+(o.hasStreamingVideo?'true':'false')+"\n";
iii+='hasTLS: '+(o.hasTLS?'true':'false')+"\n";
iii+='hasVideoEncoder: '+(o.hasVideoEncoder?'true':'false')+"\n";
iii+='isDebugger: '+(o.isDebugger?'true':'false')+"\n";
iii+='language: '+o.language+"\n";
iii+='localFileReadDisable: '+(o.localFileReadDisable?'true':'false')+"\n";
iii+='manufacturer: '+o.manufacturer+"\n";
iii+='os: '+o.os+"\n";
iii+='pixelAspectRatio: '+o.pixelAspectRatio.toString()+"\n";
iii+='playerType: '+o.playerType+"\n";
iii+='screenColor: '+o.screenColor+"\n";
iii+='screenDPI: '+o.screenDPI.toString()+"\n";
iii+='screenResolutionX: '+o.screenResolutionX.toString()+"\n";
iii+='screenResolutionY: '+o.screenResolutionY.toString()+"\n";
iii+='serverString: '+o.serverString+"\n";
iii+='version: '+o.version+"\n";

ii.text=iii;
Результаты:

Цитата:
Опера:

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: false
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: PlugIn
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=f&V=WIN%209%2C0%2C47%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=PlugIn&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,47,0

Цитата:
Фокс:

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: false
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: PlugIn
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=f&V=WIN%209%2C0%2C47%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=PlugIn&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,47,0
Цитата:
ИЕ:

avHardwareDisable: false
hasAccessibility: true
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: true
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: ActiveX
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=t&PR=t&SP=t&SB=f&DEB=t&V=WIN%209%2C0%2C45%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=ActiveX&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,45,0
Цитата:
Плеер:

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: true
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: External
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=t&V=WIN%209%2C0%2C45%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=External&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,45,0

Цитата:
Фокс под линуксом

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: false
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: false
hasVideoEncoder: true
isDebugger: false
language: ru
localFileReadDisable: false
manufacturer: Adobe Linux
os: Linux 2.6.13-15-default
pixelAspectRatio: 0
playerType: PlugIn
screenColor: color
screenDPI: 90
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=f&V=LNX%209%2C0%2C31%2C0&M=Adobe%20Linux&R=1024x768&DP=90&COL=color&AR=1,001153&OS=Linux%2 02.6.13-15-default&L=ru&PT=PlugIn&AVD=f&LFD=f&WD=t&TLS=f
version: LNX 9,0,31,0

Самое интересное - это полная идентичность всего в Опере и Фоксе, но заметная разница в производительности! Откуда это? Ведь плагин то один...

Когда заменил отрисовку на copyPixels рисовать стало быстрее...
Если уменьшить размер битмапа, на котором рисуем, то рисует еще быстрее...
Подумалось, что с большими битмапами какие-то ограничения - в цикле отрисовал 16 раз - получил прежнею скорость.

И вот тут подумалось о проектировании...
Я думал, что проще взять 2 битмапа, положить один на сцену и быстро копировать пиксели, причем сами объекты не трогать. Подумалось, что операция будет происходить на уровне копирования памяти... Увы, так оно тормозит...
Тогда я взял большой битмап, вытащил его на сцену и стал двигать/масштабировать по ней. Тормоза исчезли везде! Системе проще крутить большой битмап, при этом используя матрицы трансформаций/сглаживание, нежели тупо скопировать кусок памяти. Это как-то странно для меня.

Вопросы:
1.Откуда таки тормоза? (кто виноват?)
2. Как лучше проектировать? (что делать?)