Оберон-клуб «ВЄДАsoft»
https://zx.oberon.org/forum/

Бенчмарки
https://zx.oberon.org/forum/viewtopic.php?f=46&t=347
Страница 1 из 4

Автор:  budden [ 19 янв 2018, 23:20 ]
Заголовок сообщения:  Бенчмарки

Добрый день! Мы с кем-то из вас явно уже встречались в теме "вопросы от лиспера" на Oberon Core. Захожу на второй круг рассмотрения Оберона. Интересуют бенчмарки Оберона. Например, из широко известного (но не всегда объективного) "Computer benchmark game".

Автор:  Comdiv [ 19 янв 2018, 23:52 ]
Заголовок сообщения:  Re: Бенчмарки

Здравствуйте. Раньше на "Computer benchmark game" был в сравнении транслятор Оберона, по-моему, ОО2С или другой транслятор в Си. Когда транслятор удалили из репозитория Debian, то он исчез и из сравнения.

Немного benchmark'ов можно найти на форуме oberspace:
Простейший тест на производительность.
Расширенный тест на производительность.

В целом, это не самое любимое развлечение программистов, использующих Oberon.

Если Вас интересует производительность, почему не хотите в качестве выходного языка использовать Си или LLVM? Зачем Oberon?

Автор:  budden [ 20 янв 2018, 01:37 ]
Заголовок сообщения:  Re: Бенчмарки

https://github.com/valexey/bigbench - можете разъяснить, где здесь языки? Или это всё Оберон?

По https://github.com/valexey/bubble_test производительность выглядит приемлемой для языка, который не слишком популярен - понятно, что его сообщество не может себе позволить потратить много сил на оптимизацию.

Производительность не является для меня основным приоритетом. Она должна быть более-менее приличной. Если в 0.3х от Си укладывается, то нормально. Здесь чуть хуже, но для начала сойдёт.

Автор:  budden [ 20 янв 2018, 01:38 ]
Заголовок сообщения:  Re: Бенчмарки

А вы не помните, в каком году его выкинули? Может быть, можно в веб-архиве посмотреть. Всё же там много тестов, и это более надёжно.

Автор:  budden [ 20 янв 2018, 01:41 ]
Заголовок сообщения:  Re: Бенчмарки

А, понял, где языки. Так вроде всё выглядит неплохо.

Автор:  budden [ 20 янв 2018, 01:45 ]
Заголовок сообщения:  Re: Бенчмарки

Для меня, как вы, возможно, помните, необходима инкрементная компиляция, да и сборка мусора, в принципе, тоже необходима. У Оберона всё это есть. Инкрементная компиляция в Си делается слишком уж страшно - через вызов внешнего компилятора и генерацию разделяемых объектных файлов (ну или по сути городить свой ассемблер внутри программы, тогда это уже не Си).

Плюс очень медленная компиляция в Си. Т.е. вообще всё плохо. LLVM - это очень монструозный проект. Я один раз пытался CLANG собрать и это не удалось, причём он сначала очень долго мне простыню крутил. Я люблю, когда быстро собирается. Минут 5-10 - это самый максимум, а лучше - не более минуты двух. Лисп это позволяет, Оберон, видимо, тоже. Си - нет.

Автор:  Comdiv [ 20 янв 2018, 14:15 ]
Заголовок сообщения:  Re: Бенчмарки

budden писал(а):
По https://github.com/valexey/bubble_test производительность выглядит приемлемой для языка, который не слишком популярен - понятно, что его сообщество не может себе позволить потратить много сил на оптимизацию
Вообще-то Алексей пробовал Ocaml, предполагая его использовать для практических целей, и не дожидаясь от сообщества Ocaml бенчмарков, написал свой. Оберон там оказался лишь забавы ради, чтобы 2-а раза не вставать.

Цитата:
Производительность не является для меня основным приоритетом. Она должна быть более-менее приличной. Если в 0.3х от Си укладывается, то нормально. Здесь чуть хуже, но для начала сойдёт.
Что означает "для начала сойдёт"? Потом-то она не улучшится. Компилятор BlackBox никто не будет существенно переделывать, он по дизайну не предназначен для значительных оптимизаций.

Автор:  Comdiv [ 20 янв 2018, 14:17 ]
Заголовок сообщения:  Re: Бенчмарки

budden писал(а):
А, понял, где языки. Так вроде всё выглядит неплохо.

Но выглядит всё неплохо именно для транслятора Оберона в Си, который собирается в режиме максимальной, длительной по времени оптимизации.

Автор:  Comdiv [ 20 янв 2018, 14:53 ]
Заголовок сообщения:  Re: Бенчмарки

budden писал(а):
Для меня, как вы, возможно, помните, необходима инкрементная компиляция, да и сборка мусора, в принципе, тоже необходима. У Оберона всё это есть.
У основных реализаций Оберона не совсем инкрементная компиляция - просто пересобирается весь модуль целиком, но не импортируемые им модули. Поэтому, а также из-за отсутствия лишних стадий трансляции, нужных для оптимизации, это происходит быстро.
Цитата:
Инкрементная компиляция в Си делается слишком уж страшно - через вызов внешнего компилятора и генерацию разделяемых объектных файлов (ну или по сути городить свой ассемблер внутри программы, тогда это уже не Си).
Зачем городить свой ассемблер внутри программы, я не понял. В Blackbox всё тоже сводится к вызову "внешнего" компилятора, но не в основной операционной системе, а в Blackbox, который сделан как приложение, но по подобию операционной системы Оберон. Это гибче и удобней, но не настолько, чтобы это было радикальным преимуществом.
Цитата:
Плюс очень медленная компиляция в Си
Си имеет то преимущество перед С++, что он относительно простой, поэтому для него есть Tiny C Compiler, который транслирует в 10 раз быстрей, чем gcc без опций оптимизации. Т.е. всё неплохо. Также, tcc можно использовать как библиотеку, но лицензия Вам, наверное, не понравится.
Цитата:
LLVM - это очень монструозный проект. Я один раз пытался CLANG собрать и это не удалось
Clang и LLVM - это разные проекты, которые можно использовать по отдельности. Более того, Вам не нужно собирать его для того, чтобы использовать.
Цитата:
Я люблю, когда быстро собирается. Минут 5-10 - это самый максимум, а лучше - не более минуты двух. Лисп это позволяет, Оберон, видимо, тоже. Си - нет.
Оберон можно собирать быстрей, чем Си в силу дизайна языков, тем не менее tcc обеспечивает приличную скорость.

Автор:  budden [ 20 янв 2018, 17:10 ]
Заголовок сообщения:  Re: Бенчмарки

Спасибо за дальнейший ликбез!

tcc мне не подойдёт по лицензии.

> У основных реализаций Оберона не совсем инкрементная компиляция - просто пересобирается весь модуль целиком

Меня это устраивает.

> Зачем городить свой ассемблер внутри программы, я не понял

Я вот сейчас в BB скомпилировал какой-то пример - модули компилятора подгрузились в память. Разве тут ассмеблер не находится в памяти процесса blackbox.exe ?

> Но выглядит всё неплохо именно для транслятора Оберона в Си, который собирается в режиме максимальной, длительной по времени оптимизации.

А где там собственно Оберон без Си? В маленьком-то тесте простой Оберон? Получается в ~5 раз медленнее Си - приемлемо.

> Компилятор BlackBox никто не будет существенно переделывать, он по дизайну не предназначен для значительных оптимизаций.

Думается, что при достаточных ресурсах можно сделать. Язык-то маленький, по сравнению с лиспом. Но и без этого 1/5 от Си - это нормально. Вон Питон со своим 1/100 от Си как прёт.

Страница 1 из 4 Часовой пояс: UTC + 2 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/