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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.02.2007, 00:35
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Снимет ли нагрузку с процессора разнесенное во времени выполнение кода?

Здравствуйте.
Долго думал, как назвать, а как вышло, так вышло =)
Собственно, ситуация:
Есть игра, онлайновая, принцип ее работы заключается в том, что каждые 3 секунды она конектится к серверу, получает от него какие-то данные, и после соответственно реагирует. Проблема заключается в том, что именно в момент сразу после получения данных получается "пик", в определенных ситуациях игра может загрузить процессор на 100% (ну и дальше вылетают ошибки, падает эксплорер и все в том же духе). К сожалению переделать эту логику нельзя по коммерческим причинам. Но нужно как-нибудь изгалиться, чтобы все-таки работало лучше... =)

Я думал попробовать разбить выполнение функций setInterval'ом, но не уверен, что это хороший вариант, и был бы рад услышать мнения, возможно, другие пути решения.

Вот, пример того, что я имею в виду:
Код:
function a(){
b();
};
function b(){
c();
}function c(){};
Это то, что есть
Код:
var itr;
function a(){
itr = setInterval(b, 100);
}
function b(){
clearInterval(itr);
itr = setInterval(c, 100);
}
function c(){};
Это то, что я хочу сделать.
К сожалению работы такого плана будет много, а времени на эксперименты - как обычно. Поэтому и спрашиваю =)

Заранее спасибо за любые ответы.
__________________
Hell is the possibility of sanity

Старый 14.02.2007, 00:49
kmkhi вне форума Посмотреть профиль Отправить личное сообщение для kmkhi Найти все сообщения от kmkhi
  № 2  
Ответить с цитированием
kmkhi

Регистрация: Feb 2007
Сообщений: 24
так что конкретно забивает процессор ?

Старый 14.02.2007, 00:53
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Время выполнения каждой итерации останется таким же, как если бы их выполнять сразу друг за другом. Паузы приведут лишь к увеличению времени. Т.е. общее время = время выполнения+время простоя. А вообще, судя «что каждые 3 секунды она конектится к серверу» — значит проект был построен изначально неверно и нужно было использовать сокет-сервер.

Старый 14.02.2007, 15:27
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
К сожалению переписывать весь код игры не представляется возможным, как я уже говорил, из коммерческих соображений. Были причины не использовать сокетное соединение из-за того, что для этого нужно было бы задействовать порт, который с большой долей вероятности будет просто закрыт проксей\фаерволом (а конечный пользователь, предположительно, не умеет\не может сам настраивать свое подключение к сети).

Дело еще и в том, что в игре есть довольно много анимации, как выяснилось, она очень ресурсоемкая. Так вот идея была в том, чтобы, по крайней мере, разделить по времени анимацию и рассчеты.

Да, время выполнения в данном случае не критично (в паузах между подключениями практически ничего не происходит). Т.е. задача снять нагрузку с процессора, возможно, за счет увеличения времени выполнения.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 14.02.2007 в 15:31.
Создать новую тему Ответ Часовой пояс GMT +4, время: 07:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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