Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2018, 20:24
Интересующийся
Отправить личное сообщение для NoobFindAnswer Посмотреть профиль Найти все сообщения от NoobFindAnswer
 
Регистрация: 25.07.2018
Сообщений: 13

Логическая бомба непонимания или суперсложный массив
Здравствуйте, есть проблема оптимизации. Я делаю мультиплеерную игру на ноде+сокет. И столкнулся с проблемой, я делаю двумерный массив 80х80, состоящий из объектов, которые имеют несколько свойств, одно из которых - еще один объект с кучей свойств. И получается, что генерирую я вот так этот "суперсложный массив": :
for(var i =0; i<80;i++){
    sectors[i] = [];
    for(var j =0; j<80;j++){
        rand = Math.floor(Math.random() * (3 - 0) + 0);
        sectors[i][j] = settings.newSector(i,j,settings.land['ground_grass'+rand]);
    }
}

А на стороне клиента, прохожусь по "части" из них(всего 12х12 беру). И бешенно взлетает нагрузка на ЦП. Если закрыть вкладочку с игрой, и оставить серв включенным, то нагрузка пропадает. То есть можно сделать вывод, что обычное взятие из массив через [i][j] так сильно нагружает???Получается, что дело не в отрисовке на канвасе, а в вот этой вот операции
for(var i =0; i<12;i++){
            for(var j =0; j<12;j++){
                var item = map.location.sectors[i][j];
                var img = document.getElementById(item.ground.image_id);
                context.drawImage(img, -this.real_x + +this.x + item.len_x * item.cor_x, -this.real_y +this.y + item.len_y * item.cor_y  - item.ground.fix_y, item.len_x+item.ground.fix_x, item.len_y+item.ground.fix_y);
            }
        }

Выполнение вот этого второго куска кода По таймеру: если sectors 30х30, то от 0.26 ms до 0.56 ms. Если 60х60, то разброс увеличивается и иногда до 2ms доходит.
Обновление игры происходит раз в 1000/60 ms
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2018, 20:31
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

насколько велик context ?
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2018, 20:33
Интересующийся
Отправить личное сообщение для NoobFindAnswer Посмотреть профиль Найти все сообщения от NoobFindAnswer
 
Регистрация: 25.07.2018
Сообщений: 13

размером с экран юзера
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Autocomplete получить из txt массив или привязка к файлу carry jQuery 8 02.09.2013 19:49
Кастомный селект, чекбокс, радио vostok Ваши сайты и скрипты 0 12.08.2013 00:33
Nodejs. Массив или файл? Dorian_bs Общие вопросы Javascript 4 16.07.2013 13:56
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10
ассоциативный массив где ключ это год или ..... Sandr Общие вопросы Javascript 8 18.07.2008 15:39