Перейти к публикации
Форум - ComputerCraft
Totoro

Ностальгия по былым временам

Рекомендованные сообщения

17.09.2018 в 23:09, Asior сказал:

Вот например страшная шайтан машина, которая генерировала нам сингулярность

А что там за 4 блока в воде? Это транспозеры? Почему подключены разными кабелями?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там находятся транспозеры. Они закачивают воду и передают её в (забыл как называется ерундень для производства сингулярности). Разноцветные провода использовали для того чтобы они не соединились друг с другом. Ну и сверху там находится 4 сервера которые в цикле гоняют перемещение воды. Лагала эта штука сильно, выл весь сервер, ну и спамила в консоль она соответственно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
28 минут назад, Asior сказал:

Там находятся транспозеры. Они закачивают воду и передают её в (забыл как называется ерундень для производства сингулярности). Разноцветные провода использовали для того чтобы они не соединились друг с другом. Ну и сверху там находится 4 сервера которые в цикле гоняют перемещение воды. Лагала эта штука сильно, выл весь сервер, ну и спамила в консоль она соответственно.

Я, возможно, не понимаю особенностей задачи, но зачем там 4 (!), да ещё и сервера?

Попробую угадать, почему лагала эта машина. Все 4 сервера каждый тик выполняли transferFluid?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, eu_tomat сказал:

Я, возможно, не понимаю особенностей задачи, но зачем там 4 (!), да ещё и сервера?

Попробую угадать, почему лагала эта машина. Все 4 сервера каждый тик выполняли transferFluid?

4 сервера для скорости. У пробовали к 1 цеплять и перебором посылать команды, но оказалось это неэффективно. Замеры скорости делали, оказалось что 1 транспозер выдает максимальную частоту передачи если этим занят 1 компьютер. Ну и для того чтобы не мучать остальных игроков решено было запустить сразу 4 сервера. Хотя всеравно на генерацию сингулярности уходило 30 минут. И да, команда та самая была. Только перемещали не 1000 мл, а вроде 10-100 мл. Давно было, забыл уже. Подробности @FluttyProger должен помнить, мы с ним это чудо строили. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Asior сказал:

Замеры скорости делали, оказалось что 1 транспозер выдает максимальную частоту передачи если этим занят 1 компьютер.

Проверил. При непрерывной подаче команд три из четырёх выполняются вхолостую. Источник воды не успевает регенерироваться. Логичным будет использовать 4 транспозера на один компьютер. Всё же интересно узнать, что привело @FluttyProger к иному решению.

OOA39zO.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

39 минут назад, eu_tomat сказал:

Всё же интересно узнать, что привело @FluttyProger к иному решению.

Помню что были какие-то проблемы при подключении нескольких транспозеров к одному компу, но как не вспоминал, так и не вспомнил что это была за проблема

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, FluttyProger сказал:

Помню что были какие-то проблемы при подключении нескольких транспозеров к одному компу

Я ошибся. Успешная операция перемещения жидкости выполняется за 7 тиков, а неуспешная за 1 тик. Правильный алгоритм: выполнять перемещение жидкости и ждать 3 тика, чтобы по возможности не нагружать сервер бесполезными действиями. Но тут и вправду требуется отдельный компьютер на каждый транспозер.

 

И ещё момент. Не помню уже, как это работало в старых версиях OC, но в новых транспозер можно поместить апргейдом в микроконтроллер. Это позволит избавиться от серверной стойки, самих серверов, а также цветных кабелей. А контроллеры стоят дешевле серверов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
29.11.2018 в 22:22, eu_tomat сказал:

При непрерывной подаче команд три из четырёх выполняются вхолостую. Источник воды не успевает регенерироваться.

Не 1000 мл мы передавали я помню точно, мы вроде как 100 мл, чтобы источник не регенерировался. Насчет микроконтроллеров, тогда это считалось не очень эффективным, запуск шайтан машины планировался 1 раз. (ну и потом пару раз еще врубали когда на заказ создавали сингулярность)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, Asior сказал:

Не 1000 мл мы передавали я помню точно, мы вроде как 100 мл, чтобы источник не регенерировался. Насчет микроконтроллеров, тогда это считалось не очень эффективным, запуск шайтан машины планировался 1 раз. (ну и потом пару раз еще врубали когда на заказ создавали сингулярность)

Транспозер из источника не может взять меньше 1000 мл. Из бака билдкрафта можно взять меньше, но на соотношение выхода материи к сырью это не влияет. Поэтому нет смысла мельчить порции, это только создаст лишнюю нагрузку на сервер. По крайней мере, так выходит на текущих версиях OC, AE и BC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, eu_tomat сказал:

Транспозер из источника не может взять меньше 1000 мл. Из бака билдкрафта можно взять меньше, но на соотношение выхода материи к сырью это не влияет. Поэтому нет смысла мельчить порции, это только создаст лишнюю нагрузку на сервер. По крайней мере, так выходит на текущих версиях OC, AE и BC.

Нашел какой-то сейв где тестировал это дело, код тут лютый какой-то, а потом перешёл на простой код где 1 транспузер на один компуктер. Могу скинуть код где несколько транспузеров на 1 компутер, но глаза могут за кровоточить)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
01.12.2018 в 16:51, Asior сказал:

Не 1000 мл мы передавали я помню точно, мы вроде как 100 мл, чтобы источник не регенерировался.

Вроде как всё-таки по тысяче

local com = require("component")
local tr  = com.transposer

while true do 
  tr.transferFluid(2,3)
  os.sleep(0)
end

возможно не финальный код, но скорее всего тот

 

P.S если бы использовали os.sleep(0.15) нагрузки на серв должно было быть меньше))

Изменено пользователем FluttyProger

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
34 минуты назад, FluttyProger сказал:

Нашел какой-то сейв где тестировал это дело, код тут лютый какой-то, а потом перешёл на простой код где 1 транспузер на один компуктер. Могу скинуть код где несколько транспузеров на 1 компутер, но глаза могут за кровоточить)

Думаю, не имеет смысла. Я уже понял, что для максимальной производительности нужен один комп (или микроконтроллер) на транспозер.

2 минуты назад, FluttyProger сказал:

Вроде как всё-таки по тысяче


local com = require("component")
local tr  = com.transposer

while true do 
  tr.transferFluid(2,3)
  os.sleep(0)
end

 

Да, в таком варианте будет брать по тысяче милливёдер. Единственное улучшение этого кода, которое я могу сделать, это сделать задержку 0.15 сек вместо нуля.

 

Интересно узнать, что там за ошибки сыпались в консоль сервера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, eu_tomat сказал:

Интересно узнать, что там за ошибки сыпались в консоль сервера.

если ты про те что на скрине наверху "false 0,0"

то это не успевает регениться вода и транспозер пытается зачерпнуть пустоту о чем и сообщает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, Ingr сказал:

если ты про те что на скрине наверху "false 0,0"

то это не успевает регениться вода и транспозер пытается зачерпнуть пустоту о чем и сообщает.

На скрине нет ошибок, там как раз всё понятно. Мне интересно понять, связаны ли лаги сервера и ошибки в консоли сервера с отсутствием источника воды, или они сыпались при любой попытке перемещения. Это позволило бы понять, можно ли сделать эту схему безвредной для сервера введением достаточной задержки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, eu_tomat сказал:

На скрине нет ошибок, там как раз всё понятно. Мне интересно понять, связаны ли лаги сервера и ошибки в консоли сервера с отсутствием источника воды, или они сыпались при любой попытке перемещения. Это позволило бы понять, можно ли сделать эту схему безвредной для сервера введением достаточной задержки.

ну тут нужно собирать тестовую установку и смотреть. По другому наверное никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, Ingr сказал:

ну тут нужно собирать тестовую установку и смотреть. По другому наверное никак.

Я спрашивал в надежде, что у @FluttyProger сохранилась инфа о тех ошибках. Ошибки-то сильно зависят от серверных плагинов. Кто же теперь вспомнит, что на том сервере было установлено, и какую ситуацию надо воспроизвести. А вот, сам текст ошибок мог оказаться где-то сохранённым, и по нему теоретически можно понять суть проблемы. Об этом я и спрашивал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ошибки надо спрашивать у @Alex хотя маловероятно что они уцелели с того времени

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скандалы, интриги, расследования 😃

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×