Перейти к содержимому
Totoro

заказ Benchmark - тестируем эмулятор OpenComputers

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

tW5yASi.png

 

Всем привет.

Мы тут пишем эмулятор OpenComputers, и в процессе его нужно тестировать.

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

 

Утилита должна выглядеть как программка для OpenOS, на Lua.

В идеале её надо загрузить в Hel, чтобы было быстрее устанавливать.

 

Для чего именно она нужна?

Делать бенчмарк компьютера в Minecraft смысла особо нет - там и так понятно насколько будет производительной твоя "сборка".

Но это имеет смысл делать в эмуляторе - потому что эмулятор может глючить, лагать, багать, и жрать оперативную память.

 

(Например, сегодня мы запустили в Ocelot Online демку, которая очень быстро рендерила текст на экране, и в результате, у @Fingercomp браузер сожрал 5 гигабайт оперативной памяти, засвопился и вырубил на час весь компьютер.)

 

Что именно она должна тестировать?

  • Утечки оперативной памяти, производительность рендера и лаги эмулятора. Для этого можно например запустить интенсивный рендер на экране какого-нибудь цветастого мусора. Или любой другой вариант. Засечь время и потом сверить "внутриигровые" часы с настоящими, чтобы определить, не лагало ли оно. (Параллельно тесту можно будет уже вручную смотреть диспетчер задач - не жрет ли браузер или десктопный эмулятор ресурсы больше положенного.)
  • Правильную работу компонентов. То есть проверить, соединяет ли интернет карта с интернетом, посылает ли сетевые сообщения модем, и так далее.

Всю инфу надо потом красиво вывести на экран.

Можно в графическом виде, можно в командной строке.

 

Награда?

Большое спасибо от всей души. :D

 

Короче, если кто-то будет искать идею "что бы написать" - бенчмарк для эмулятора это вариант.

Он нам пригодится.

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


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

Попробовал написать что-то такое.

Сам файл лежит в онлайн-эмуляторе (ocelot.fomalhaut.me) по пути /home/.mt.lua .

 

Вкратце результат: Ocelot Online гораздо лучше соответствует таймингам Minecraft, чем OCEmu.

Но в обоих эмуляторах есть баги.

 

Тесты:

тест 1 - генерация 10 тысяч псевдослучайных чисел

тесты 2-4 - отрисовка случайного текста на экране

тест 5 - испытание гуделки случайными звуками (computer.beep)

тест 6 - проверка, все ли компоненты имеют методы по документации

тест 7 - проверка файловой системы на чтение-запись

тест 8 - проверка Интернета

тесты 9,10 - проверка сетевой и соединённой карты соответственно

тест 11 - проверка EEPROM на чтение-запись

 

Результаты:

Minecraft 1.7.10 (компьютер tier 3)

тест 1 - 0,05 с

тест 2 - 1,3 с (рендер идёт постоянно)

тест 3 - 1,8 с

тест 4 - 2,5 с

тест 5 - 13,5 с

тест 6 - без предупреждений

тест 7 - предупреждение, что временная файловая система не найдена

тест 8 - без предупреждений

тест 9 - 1,15 с; предупреждение, что никто на пинг не ответил

тест 10 - не проводился (не хватило места для соединённой карточки)

тест 11 - 2,2 с

 

Ocelot Online

тест 1 - 0,05 с

тест 2 - 1,9 с (рендер кусками)

тест 3 - 2,65 с

тест 4 - 3,7 с

тест 5 - 13,5 с

тест 6 - без предупреждений

тест 7 - предупреждение, что временная файловая система не найдена;

  (баг эмулятора) на unmanaged диск ничего не записывается

тест 8 - без предупреждений

тест 9, 10 - не проводились

тест 11 - 2,2 с

 

OCEmu

тест 1 - 0,02 с

тест 2 - 0,37 с (рендер после coroutine.yield)

тест 3 - 0,43 с

тест 4 - 0,91 с

тест 5 - 4,58 с

тест 6 - без предупреждений

тест 7 - предупреждение, что временная файловая система не найдена

тест 8 - без предупреждений

тест 9 - 1 с; (баг OCEmu) модем поймал своё сообщение

тест 10 - не проводился

тест 11 - 0,001 с

 

Награду попрошу отдать на дальнейшую разработку Ocelot и фиксы багов. :)

  • Нравится 4
  • Одобряю 2
  • Спасибо 2

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


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

Ocelot Online гораздо лучше соответствует таймингам Minecraft, чем OCEmu

В OCEmu есть специальная настройка, которая включает режим эмуляции задержек запросов к компонентам (fast). Она была включена?

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


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

В OCEmu есть специальная настройка, которая включает режим эмуляции задержек запросов к компонентам (fast).

На прошлом тесте было fast=true (быстрый режим).

Данные второго теста OCEmu (fast=false):

тест 1 - 0,02 с

тест 2 - 1,61 с (рендер - как в Minecraft - идёт постоянно)

тест 3 - 2,20 с

тест 4 - 3,00 с

тест 5 - 4,72 с

тест 6 - без предупреждений

тест 7 - предупреждение, что временная файловая система не найдена

тест 8 - без предупреждений

тест 9 - 1,15 с; баг с поимкой собственного сообщения остался

тест 10 - не проводился

тест 11 - 0,09 с

 

Итого в OCEmu в медленном режиме:

- операции с GPU медленнее, чем в Minecraft,

- генерация случайных чисел быстрее,

- пищалка в 3 раза быстрее Minecraft,

- (баг) модем ловит собственное сообщение,

- запись на EEPROM практически мгновенна.

 

Тайминги Ocelot Online практически совпадают с нужными, за исключением GPU.

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


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

Оцелот хорош тем, что его мозги — это реорганизованный код из OpenComputers, поэтому вся логика работы компонентов сохранена и может быть легко обновлена. GPU также работает с теми же характеристиками, что и в моде. Задержки в отображении — это проблема исключительно онлайн-версии, которую Тотора год никак не может доработать. В незаконченной десктоп-версии проблем с GPU не наблюдалось.

 

@Totoro так что давай доделывай оцелота. Нужен новый рендер и воркспайсы.

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


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

О, нихрена себе.
@ProgramCrafter огромное спасибо за всестороннее тестирование. :)

 

Unmanaged диск надо будет чинить, да.
Рендер новый уже есть, должен рисовать плавнее, меньше грузить компьютер и всё такое (спасибо @LeshaInc).

 

@Fingercomp ну придётся таки перебороть лень и выкатывать вторую версию в онлайн.

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


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

@hohserg Закинул: https://pastebin.com/raw/qdYmD7Bw

Только что перепроверил, вроде все тесты работают. Единственная странность - что Юникод рендерится дольше, чем простой ASCII, хотя вызовов к gpu.set остаётся столько же. Возможно, быстрее исчерпывается бюджет вызовов, но это сомнительно.

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


Ссылка на сообщение
Поделиться на других сайтах
В 27.04.2020 в 23:03, Totoro сказал:

Рендер новый уже есть

Новый рендер действительно похож на Minecraft. Единственное, что мне не нравится - это неограниченное потребление памяти браузером - достаточно запустить такой код, и реальный компьютер станет лагать:

while true do
  for i = 1, 50 do
    print(string.char(math.random(56, 126)))
  end
  os.sleep(0)
end

 

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


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

Новый рендер действительно похож на Minecraft.

Новый рендер ещё не выкачен на сайт. Там старый =)
Новый рендер предполагается по модели Desktop Ocelot. Можно попробовать этот код там.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...