| Скорость и оптимизация (вопросы) |
|
DanielC
| Дата: Четверг, 16.06.2011, 12:16 | Сообщение # 61 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Созрел такой вопрос, что быстрее вызов скрипта или считывание кода непосредственно из объекта? p.s. room_instance_clear(ind) страшный скрипт.
Музыка
|
| |
| | |
|
Йакуд
| Дата: Четверг, 16.06.2011, 13:43 | Сообщение # 62 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 503
Статус: Offline
|
DanielC, room_instance_clear ты вызываешь из одного объекта в одном месте, то лучше сделай Quote (DanielC) непосредственно из объекта А если не только в этом объекте или в разных местах объекта, то делаешь функцию и вызываешь ее. Разница не особо большая.. Если по сабжу то вызов функции, будет немного медленнее
Второе рождение .blanco
Сообщение отредактировал Йакуд - Четверг, 16.06.2011, 13:44 |
| |
| | |
|
DanielC
| Дата: Пятница, 29.07.2011, 13:18 | Сообщение # 63 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Появилась такая проблема: На уровне создаются объекты в неопределенном количестве каждые 2-3 секунды занимаемая память увеличивается на 4 кб, чем чаще происходит спам тем быстрее заполняется память. При этом уничтожение объектов не дает обратного эффекта так же как и переход в другую комнату, занятая память не освобождается. С чем это может быть связано?
Музыка
|
| |
| | |
|
Ang3L
| Дата: Пятница, 29.07.2011, 15:15 | Сообщение # 64 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
|
Quote (DanielC) С чем это может быть связано? Открой дебаг режим и мониторь кол-во образцов. Если оно находится на одном уровне или возвращаются к нему, то дело не в них. Возможно в образцах создаются какие-то структуры, которые ты не удаляешь: объекты, поверхности, спрайты, динамические структуры и т.д. Их как и образцы, тоже необходимо удалять, а зачастую про это забывают (и не только в ГМ, но и в остальных языках это тоже проблема).
Blogpost
|
| |
| | |
|
DanielC
| Дата: Воскресенье, 07.08.2011, 00:06 | Сообщение # 65 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Даст ли прирост в скорости отключение рисования объекта за пределами вида? Да и вообще "невидимые" объекты, давно уже понял что Гм практические не взаимодействует с видеопамятью, поэтому возникают сомнения.
Музыка
|
| |
| | |
|
WertyXBOCT
| Дата: Воскресенье, 07.08.2011, 00:52 | Сообщение # 66 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2472
Статус: Offline
|
DanielC, даст. Если их много.
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
DanielC
| Дата: Среда, 02.11.2011, 18:54 | Сообщение # 67 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Кто-нибудь тестировал встроенные генераторы частиц? Хотелось бы узнать как их можно оптимизировать. В частности: 1. Размер текстур, встроенные текстуры - пропорциональная зависимость производительности. 2. Количество, допустимые пределы (формула производительности) к примеру какой потолок будет на 900 сильном камне. 3. Коллизия (Магниты, Уничтожители, Отражатели, Преобразователи) - возможные подводные камни. 4. Анимация - частицы с анимированными текстурами. Сейчас стараюсь использовать текстуры не превышающие размера в 64px, количество частиц может доходить до 1500 в среднем 100-300 при этом почти не используются магниты уничтожители и др... Надеюсь тема будет интересна не только мне
Музыка
|
| |
| | |
|
vitaly5000
| Дата: Четверг, 03.11.2011, 00:02 | Сообщение # 68 |
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
|
Quote (DanielC) Надеюсь тема будет интересна не только мне Да. не только тебе
|
| |
| | |
|
Dva_Kota
| Дата: Понедельник, 05.12.2011, 11:46 | Сообщение # 69 |
Молчун
Группа: Пользователь
Сообщений: 29
Статус: Offline
|
|
| |
| | |
|
DanielC
| Дата: Вторник, 14.02.2012, 14:57 | Сообщение # 70 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Перебираю старый код, с целью возможной оптимизации и нашел код показавшийся подозрительным. Связан с ини файлами: Code ini_open("config.ini"); money = ini_read_real("GAME","money",""); ini_close(); Подозрителен тем, что находится в степе, и по идее, каждый шаг дергает ини. Вот и хотел узнать не смертельно ли это? P.s. На всякий случай, конечно ограничил его условиями, но всё-таки стало интересно, не повлияет ли на производительность.
Музыка
|
| |
| | |
|
SRes
| Дата: Вторник, 14.02.2012, 16:50 | Сообщение # 71 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2526
Статус: Offline
|
Обращаться к жесткому диску 30 раз в секунду без надобности - это неправильно.
Velociped Inc.
|
| |
| | |
|
DanielC
| Дата: Среда, 15.02.2012, 10:56 | Сообщение # 72 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Что будет быстрее? Один спрайт 800x600, двух кадровый спрайт 400x600 или 4 кадровый 400x300? Добавлено (15.02.2012, 10:56) --------------------------------------------- P.s. Как можно догадаться, вес у всех одинаковый.
Музыка
|
| |
| | |
|
Dva_Kota
| Дата: Среда, 15.02.2012, 11:18 | Сообщение # 73 |
Молчун
Группа: Пользователь
Сообщений: 29
Статус: Offline
|
Я думаю что 4-х кадровый, т.к. в этом случае будет рисоваться изображение в 4 раза меньше по площади.
|
| |
| | |
|
Nikich_mega
| Дата: Понедельник, 05.03.2012, 15:13 | Сообщение # 74 |
Разговорчивый
Группа: Пользователь
Сообщений: 123
Статус: Offline
|
Что быстрее обрабатываются в GM? Модели или примитивы? Я ещё прочитал в справке: "Использование моделей может значительно ускорить графику в ваших 3D играх, и Вы должны использовать их всякий раз, когда имеется возможность." Честно говоря я не совсем понял это предложение. Ускорить графику - это как?
Сообщение отредактировал Nikich_mega - Понедельник, 05.03.2012, 15:13 |
| |
| | |
|
sun
| Дата: Понедельник, 05.03.2012, 15:15 | Сообщение # 75 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 256
Статус: Offline
|
наверно ускорить отрисовку графики.
xxxyyyzzzed Ed Gorod
|
| |
| | |
|
Nikich_mega
| Дата: Понедельник, 05.03.2012, 20:57 | Сообщение # 76 |
Разговорчивый
Группа: Пользователь
Сообщений: 123
Статус: Offline
|
Так значит что. - Модели лучше?
|
| |
| | |
|
Ang3L
| Дата: Вторник, 06.03.2012, 13:18 | Сообщение # 77 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
|
Quote (Nikich_mega) Что быстрее обрабатываются в GM? Модели или примитивы? Это предложения не имеет смысла. Модели - 3-мерные, примитивы - 2-мерные. Это как измерение расстояния в 2д и 3д. В 2д быстрее (т.к. нет расчётов по Z), но нужно ли оно тебе в 3-мерном пространстве? Quote (Nikich_mega) Так значит что. - Модели лучше? Однозначно! Особенно с длинными ногами... Quote (Nikich_mega) Ускорить графику - это как? Есть функция draw_point(x, y); - рисует точку в текущем цвете. Вот если ей рисовать спрайт, то будет всё очеееень долго. А чтобы ускорить этот процесс используется draw_sprite();. Ясно? Разница между ними в идеи минимальная, но технологически они разные. draw_sprite() - выводит сразу целый блок, а не 1 пиксель. За счёт этого получается значительно ускориться. Грубо говоря, для того чтобы нарисовать с помощью спрайт draw_sprite, нужно 1 раз зайти в память, скопировать массив и выйти из памяти. Если рисовать по пиксельно, то мы заходим и выходим из памяти столько сколько пикселей нам надо скопировать в массив памяти (это увеличивает работу на пустом месте). Аналогично с примитивами. Это просто отрисовка фигур в батче (порций). Мы не пихаем отдельно по фигурке, чтобы отрисовать 1 целую. Мы формируем целую и отсылаем её на отрисовку. И аналогично с моделями. Мы не пихаем каждый треугольник отдельно, а запихиваем всю модель, а дальше видюха разберётся. И последняя аналогия, аналогия из жизни. Сидишь ты в классе и тебя учитель просит принести книгу из школьной библиотеки. Ты принес, а тебя просят ещё книгу принести. Потом ещё, и ещё, и ещё. И всё по 1. И так раз 10. Допустим до библиотеки - 100м. Т.е. ты сходил 2км (100м туда, 100м обратно == 200м и умноженное на 10 раз ходьбы). Что не мало. А если бы тебе дали список этих 10 книг, то ты 1 раз туда пришёл, всё взял и отнёс за 1 раз. И сходил бы вместо 2км, всего 200м. Эффективность возрастает в 10 раз на почти пустом месте! Узкое место здесь - это сколько книг ты можешь унести за раз. А это всегда определённое число и оно самое эффективное. Если ты несёшь меньше этого числа, то тебе становится легче, но ходок больше - эффективность падает. Если больше, то не факт что ты донесёшь или устанешь раньше чем донесёшь - эффективность падает. Эта технология используется везде - в принтерах, в интернете (число MTU), в отрисовке графики и в любой другой передаче данных от одного другому.
Blogpost
|
| |
| | |
|
Nikich_mega
| Дата: Вторник, 06.03.2012, 15:23 | Сообщение # 78 |
Разговорчивый
Группа: Пользователь
Сообщений: 123
Статус: Offline
|
Quote Это предложения не имеет смысла. Модели - 3-мерные, примитивы - 2-мерные. Это как измерение расстояния в 2д и 3д. В 2д быстрее (т.к. нет расчётов по Z), но нужно ли оно тебе в 3-мерном пространстве? Дану? Box aka Коробка aka Блок aka параллелепипед - примитив. Призма - примитив. Пирамида - примитив. Цилиндр - примитив. И Эллипсоид и Сфера тоже примитивы... Модель состоит из множества примитивов и форм. В 3D's Maxe есть меню Create -> Primitives и там есть то что я перечислил. Последние аналогии были не обязательны, достаточно было про draw_point(x,y); А так большое спасибо!  Буду использовать модели.
Сообщение отредактировал Nikich_mega - Вторник, 06.03.2012, 15:26 |
| |
| | |
|
Ang3L
| Дата: Вторник, 06.03.2012, 15:37 | Сообщение # 79 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
|
Quote (Nikich_mega) В 3D's Maxe есть меню Create -> Primitives и там есть то что я перечислил. Ты 3d max'ом занимаешься или гамакером? С++ объект это тоже нечто другое чем в гамаке и что?
Blogpost
|
| |
| | |
|
vitaly5000
| Дата: Пятница, 09.03.2012, 01:14 | Сообщение # 80 |
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
|
Такой вопрос Visible=false или просто запретить прорисовку спрайта условием (в draw)
Результат одинаковый. Есть ли разница ?
|
| |
| |
|
|