Архив сообщества
2011 — 2019
Аватар Jewlizardus

Оптимизация!

Автор: Jewlizardus · 30.07.2015, 05:20 · 27 сообщений

Сообщений в теме: 27

Jewlizardus#1
Зашел я такой на синий, глянуть че там и как, летаю гостом, залетел в атмос. Смотрю, там по трубам 19 килопаскалей течет, ну нихуя себе, думаю. Глянул на компьютер, а там всего два килопаскаля выставлено. Прихуел маленько, ну дай, думаю, зайду.
Залогинился атмостехом, пошел смотреть.
Игра лагает все так же, не знаю что у вас там за оптимизация, но да мы привыкшие. Хуй с ним.
Захожу в атмос, начинаю делать атмособоньбу и охуеваю с работы атмоса/машинок раз в 10 секунд.
Ну как, охуеваю. Подключаю баллон к насосу, включаю его - нихуя не работает, жамкаю кнопочки, нихуя не работает, хуйня думаю, тыкаю на все кнопки подряд - плазма вырывается на свободу. Ну да мне похуй. Я ж атмосферник, закачиваю в помпу холодный воздух, вставляю туда синий баллон, начинаю перекачивать воздух в баллон, секунда, ничего, вторая, ничего, третья, пятая, ДЕСЯТЬ СЕКУНД ВСЕ НАХУЙ ЗАЛАГАЛО А ПОТОМ КАК ЕБАНЕТ ДВАДЦАТЬ ТЫСЯЧ ПАСКАЛЕЙ В МАЛЕНЬКИЙ БАЛЛОН ПИЗДЕЦ КРОВЬ КИШКИ РАСПИДОРАСИЛО ЛИМИТКА ИЗ ОБЫЧНОГО ВОЗДУХА ПЕРДАК НА ОРБИТЕ Я ЕБАЛ ТАКИЕ ВЕТРОФИКСЫ УНОСИТЕ НАХУЙ.
Изображение
41
Изображение
Скопировать ссылку
Korvin Morro#5
zixxa (29 July 2015 - 19:46) писал: писал:
А я нихуя не понял.
Представь машину, которая едет не статично, а делает прыжки каждые 10 секунд, при этой хрен пойми как далеко она прыгнет. Вот на такой машине ты по горному серпантину едешь, если пытаешься что-то сделать взрывоопасное с атмосом.
0
Скопировать ссылку
Otuska Bald#6
Жирная черта под всеми этими фиксами. Чудес не бывает, а ведь так хотелось верить.
0
#вырваноизконтекста #тыдаженеиграешь #демагог #унасвсехорошо #онижедети #нуодногожераспедалили
Скопировать ссылку
Gvardota#8
Otuska Bald (29 July 2015 - 20:49) писал: писал:
Жирная черта под всеми этими фиксами. Чудес не бывает, а ведь так хотелось верить.
Чего тут верить-то. Точность аппроксимации прямо зависит от частоты дискретизации. Частоту уменьшили, и даже не в полтора раза, а на порядок. Разумеется, все вычисления по пизде пойдут.
0
Скопировать ссылку
Otuska Bald#9
Gvardota (29 July 2015 - 21:07) писал: писал:
Чего тут верить-то. Точность аппроксимации прямо зависит от частоты дискретизации. Частоту уменьшили, и даже не в полтора раза, а на порядок. Разумеется, все вычисления по пизде пойдут.
Надежда была, что замедлят допускающие такое машины.
0
#вырваноизконтекста #тыдаженеиграешь #демагог #унасвсехорошо #онижедети #нуодногожераспедалили
Скопировать ссылку
Sakhan#10
Otuska Bald (29 July 2015 - 21:11) писал: писал:
Надежда была, что замедлят допускающие такое машины.
Для этого нужно лопатить ZAS. Его лучше не лопатить :3
0
Скопировать ссылку
Sakhan#12
ACCount (29 July 2015 - 22:47) писал: писал:
Эх. А я предупреждал.
Да чо предупреждал. Лучше бы его коммиты показал. Я только сейчас заценил, чо он подкрутил
0
Скопировать ссылку
ACCount#14
Sakhan (29 July 2015 - 22:50) писал: писал:
Да чо предупреждал. Лучше бы его коммиты показал. Я только сейчас заценил, чо он подкрутил
Я говорил, что он замедлил подсистему машин в 10 раз, по сути просто сменял лаги на баги. Что мы и видим.

Думаю, есть способ сделать то, что он сделал, но умнее и без побчек. Но для этого надо откатить билд.
0
Скопировать ссылку
Editor TEH Chaos-neutral#17
Цитата
Я говорил, что он замедлил подсистему машин в 10 раз, по сути просто сменял лаги на баги. Что мы и видим.
Цитата
сменял лаги на баги
Так это же охуенно.
2
Скопировать ссылку
tizit#20
Там каждый тик накидывает давление, а так как задержка 10 сек, то через 10 сек давление становится очень большим?
0
Спойлер
Цитата
Собственно, форумные кукаретики как всегда в ударе и извернули всё так, как им удобно.
Скопировать ссылку
Gvardota#21
tizit (30 July 2015 - 09:04) писал: писал:
Там каждый тик накидывает давление, а так как задержка 10 сек, то через 10 сек давление становится очень большим?
Давай пример приведу. Это не какой-то реальный процесс на станции, просто из головы.
Есть какая-то машина, состояние которой характеризуется числом, температура там или еще что. Суть в том, что каждую секунду из этого числа вычитается его же половина.
Так вот в нормальных условиях состояние этой машины будет описываться числовым рядом: 300, 150, 75, 37.5, 18.75. Получается медленное и аккуратное затухание.
Если подпустить к коду этой машины идиота, он оптимизирует процесс и сделает так, что вычисления будут производиться раз в десять секунд, зато вычитаться станет в десять раз больше.
И получится 300, -1200, 4800, -19200, 76800, -307200. Зато посчиталось быстро.

Это, конечно, грубый пример. Таких очевидных ошибок скорее всего нет. Но некоторое количество газа в трубах и температуры в горящей плазме наверняка ниоткуда возникает.
1
Скопировать ссылку
Voldirs#22
Не совсем так, как я понял.
Использую всё тот же пример с твоей абстрактной машиной. Допустим, нужно увеличить это число с 150 до 300 по +50 за секунду, т.е. 150, 200, 250, 300, стоп.
Ну а если просчёт делать раз в десять секунд, то будет 150, 650 ну и всё, приехали.
0
Скопировать ссылку
Gvardota#24
Voldirs (31 July 2015 - 02:57) писал: писал:
Не совсем так, как я понял.
Использую всё тот же пример с твоей абстрактной машиной. Допустим, нужно увеличить это число с 150 до 300 по +50 за секунду, т.е. 150, 200, 250, 300, стоп.
Ну а если просчёт делать раз в десять секунд, то будет 150, 650 ну и всё, приехали.
Твой пример отличается тем, что в нем использована линейная функция, а им в принципе плевать на шаг, результат будет корректным, просто обновляется реже. Максимум проблем, которые можно из этого получить - штуки вроде несуицидальных подрывов как в ОП-посте. Реакция игры на действия игрока правильная, просто с запозданием.
А вот более сложные функции, которые решаются через дифуры, идут по пизде. Алгоритмы их численного решения дают только приблизительные ответы с некоторой погрешностью; чем больше шаг, тем более приблизительны эти ответы. При этом ошибка имеет свойство накапливаться; если шаг подобран достаточно маленький, то она будет очень долго (весь раунд) оставаться в допустимых пределах, отклоняясь от правильного значения процентов на пять. Если же шаг слишком большой, ошибка стремительно растет. Потому и получается давление в 19 кПа из нихуя, как в ОП-посте.
0
Скопировать ссылку
Editor TEH Chaos-neutral#25
Цитата
150 до 300 по +50 за секунду, т.е. 150, 200, 250, 300, стоп.
Проблема в том, что в СС используются дифференциальные решения.

dP = (alphaP - betaP) * dT
dP - изменение давления alpha
alphaP - давление1
betaP - давление2
dT - ШАГ ВРЕМЕНИ

Допустим изначально alphaP был 100, betaP - 200, dT - 0.1
Тогда dP = -100 * 0.1 = -10
В результате новое давление будет
alphaP = 110
betaP = 190

Повторим это ещё раз.
dalphaP = (alphaP - betaP)*0.1
dalphaP = -8

alphaP = 118
betaP = 182

И так далее.

А теперь увеличим шаг до 1.
dalphaP = (100 - 200)
alphaP = 200
betaP = 100

Как видишь оно бесконечно будет меняться.

Увеличим шаг до 10.
dalphaP = (100 - 200)*10
alphaP = 1100
betaP = -900
И так далее.
0
Скопировать ссылку

Обратно в Свободное общение