Просмотр полной версии : уменьшение загрузки процессора
altermann
24.07.2010, 00:43
Здравствуйте.
Пишу мультичат на 9 человек с использованием технологии Adobe Stratus 1.0
9 человек одновременно могут видеть друг друга, общаться.
Все работает, но, при подключении более 4-5 человек слабые компы просто умирают.
Нагрузка на проц почти 100%.
Тянет нормально только интел 4 ядра, 2 оперативы, 9600 джефорс.
Пишу на флексе 4.
может у кого есть варианты, как снизить нагрузку проца? а то я в тупике =((
понимаю, что это нормально для адоба, тем не менее.....
Спасибо.
Это с какой же офигенной скоростью надо печатать, чтобы чат повесить... Там просто через каждые секунд десять клавиатуру менять надо...
ОК, а если серьезно, что вы такое с ним сделали?
ИМХО. где-то рекурсии в коде или отсылки от всех всем кто слушает про всех кто пишет -- соответственно поэтому валится.
просто цифра навеяла. 1!,2!3! - ничо, 4!?5! - начинаются траблы - трэйс спасёт мир.
altermann
24.07.2010, 02:35
сорри, не уточнил..... видео чат, транслируются видео потоки с камер и звук с микрофонов.
Ну не знаю, расскажите как вы этого добились? Все 10 пользователей на одном компьютере и у каждого по камере и микрофону? Откуда такая нагрузка? Вообще, вы про что говорите, про сервер или про клиентскую машину?
altermann
24.07.2010, 04:13
ок, суть в следующем: о технологии Adobe Stratus имеете представление? Которая позволяет создать p2p соединение. Никакой сервер не требуется, коннект идет между клиентами. Единственно, для чего юзается сервак - установка соединения, да и то, сервак адобовский, про который можно забыть.
у меня 9 человек, 9 компов, запущено 9 копий приложения. Все приложение - 9 маленьких экранчиков размером 260 на 190. На экранчики выводится видео с камер участников чата.
Вот собственно и все. Если в чат входит 4-5 человек, то все идет нормально, люди общаются, нормально видят друг друга, слышат. Если заходит больше - браузеры пиплов повисают. Соответственно, на мощных компах особых тормозов нет, а вот слабенькие отваливаются....
Как бы это вам еще раз сказать... да, представление имеется, не понятно что вы именно с ней делаете. А вы упрямо не хотите объяснить. То что это стратс - ни при чем, вы что-то очень плохо сделали в клиенте, а что именно - нам никому не извесно, потому, что вы не рассказываете ничего.
Наводящий вопрос: профайлер запускали?
altermann
24.07.2010, 05:18
Описываю в коде.
От этого никуда не деться. Могу предложить ставить на камеры меньшее разрешения и поиграться с кодеками. Хотя это врятли сильно поможет.
altermann
28.07.2010, 00:34
если уменьшить разрешение, качество и fps, то работает нормально. Но это не выход. Я все таки пытаюсь найти другой вариант решения. Он должен быть... не знаю, как-то память оптимизировать или еще что....
2altermann - джаваист? ( судя по именованиям функций)
хотя..
private function InitMedia():void
protected function onNetStatus( event:NetStatusEvent ):void
private function _attachLocalVideoAndAudio():void
private function AllowConnectToGroup():void
var publishStreamClient:Object = new Object();
MyIndex = i;
мой первый отсыл к теме о конвенциях (http://www.flasher.ru/forum/showpost.php?p=924239&postcount=1)
по топику: ну не держит флэщ сразу 9 видео - извращайтесь не извращайтесь - тут вопрос во встроенной "мощности" AVM.
Попробуйте просто с минимальным кодом воспроизводить 9 flv видео с локали - тормоза будут.
Удачи.
BlooDHounD
28.07.2010, 11:37
avm тут не причём. запустите 9 трансляций в скайпе. результат будет такой же.
Понятно, что avm не причём - любая технология так тормозить будет. Хотя кто-то больше, кто-то меньше. Я имел в виду что оптимизация кода сильно не поможет
altermann
30.07.2010, 17:45
2altermann - джаваист? ( судя по именованиям функций)
хотя..
Не, только собираюсь. Названия функций - привык как-то называть все по-человечески. Плюс, что-то у других взял.
Спасибо за советы, буду экспериментировать дальше. Оптимизировал код, вроде стало немного лучше. Думаю немного уменьшить разрешение. Может еще с чем поиграюсь.
[offtop]
То, что имена функций "говорящие", это хорошо. Но к конвенциям отсыл был не поэтому. У вас private методы то с большой буквы называются, то с подчеркивания. (это даже если принять, что вы специально называете по-разному методы с разным уровнем доступа).
altermann
30.07.2010, 18:35
[offtop]
То, что имена функций "говорящие", это хорошо. Но к конвенциям отсыл был не поэтому. У вас private методы то с большой буквы называются, то с подчеркивания. (это даже если принять, что вы специально называете по-разному методы с разным уровнем доступа).
Обязательно изучу и постараюсь придерживать рекомендаций, спасибо.
Я постепенно к этому подхожу, просто бывает запаришься, спешишь куда-нибудь, или просто выделяешь некоторые функции, чтобы в дальнейшем обратить особое внимание.
Psycho Tiger
30.07.2010, 19:13
Ну, могу порекомендовать лишь чтобы пользователь сам выбрал уровень своей машины - пусть на слабых будет меньше фпс.
gloomyBrain
30.07.2010, 19:33
сам выбрал уровень своей машины - пусть на слабых будет меньше фпс.
Полюбому на слабой машине будет меньше fps =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.