LINUX.ORG.RU
ФорумTalks

SBCL уделывает C++(и шланг, и G++) по производительности

 , , ,


0

5

https://programming-language-benchmarks.vercel.app/problem/spectral-norm

Немного лучше него, буквально на десяток миллисекунд, справляется rust.

Назовите теперь хоть одну причину использовать плюсы вообще?

Перемещено xaizek из development

Ответ на: комментарий от fernandos

Насколько старая должна быть техника чтобы заметить 40 МБ. Я понимаю микрокотроллеры. Но даже на малине по 4 ГБ стоит.

Время программиста мы не обсуждали

vertexua ★★★★★ ()
Ответ на: комментарий от vertexua

Но даже на малине по 4 ГБ стоит

Из тех 4-х для нормальной работы надо ещё два, а с программами на лиспе ещё больше. Просто

потому что мегабайты стоят пару центов

, а тот факт, что туда их доставить невозможно никого не волнует.

Время программиста мы не обсуждали

Вот именно. При равных вводных одна технология потребляет на 40 мегабайт больше.

fernandos ★★★ ()

хоспаде, да запустите один единственнй образ и гоняйте в нем все свои cp ls cat, лайк what’s your fucking problem? может вы и емакс для каждого текстового файла отдельный запускаете?

anonymous ()
Ответ на: комментарий от vertexua

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

anonymous ()
Ответ на: комментарий от anonymous

Щас бы юзверям давать решать что им запускать на своих шеретах.

anonymous ()
Ответ на: комментарий от fernandos

В реальной системе, где используется лисп более чем для одной программы, 40+ мегабайт будет тянуть лисповый «сервер приложений», а всё остальное будет весить даже меньше, чем бинарник. Как emacs-client.

monk ★★★★★ ()

Назовите теперь хоть одну причину использовать плюсы вообще?

Одна причина - умение программировать. Другая причина - наличие работы. Для которой иногда нужен C++, но никакой не SBCL. Ваш тест показывает только неправильность и бессмысленность вашего тестаб

Partisan ★★★ ()
Ответ на: комментарий от monk

В реальной системе, где используется лисп более чем для одной программы…

а есть системы, где на лиспе крутится более одного приложения?

alysnix ()
Ответ на: комментарий от anonymous

Я правильный лисп уже нашёл. Называется Racket. Пишу к нему только русский язык, чтобы читать программы было проще.

monk ★★★★★ ()
lang 	code 	time 	stddev 	peak-mem 	time(user) 	time(kernel) 	compiler/runtime
cpp 	7.cpp 	227ms 	0.1ms 	1.6MB 	427ms 	0ms 	g++ 11.2.0
cpp 	7.cpp 	227ms 	1.0ms 	4.1MB 	427ms 	0ms 	clang++ 12.0.0-3ubuntu1
cpp 	8.cpp 	227ms 	1.8ms 	4.1MB 	430ms 	0ms 	clang++ 12.0.0-3ubuntu1
cpp 	8.cpp 	229ms 	1.6ms 	1.6MB 	433ms 	0ms 	g++ 11.2.0
rust 	7.rs 	235ms 	1.4ms 	0.7MB 	433ms 	0ms 	rustc 1.55.0
lisp 	2.cl 	243ms 	4.4ms 	42.4MB 	433ms 	3ms 	sbcl 2.1.8

Это нынче называется «уделывает»?

quantum-troll ★★★★★ ()
Ответ на: комментарий от alysnix

а есть системы, где на лиспе крутится более одного приложения?

У меня одно время крутился веб-сервер, админка на GTK и несколько оболочек. Потом, когда разочаровался в Common Lisp’е, на это дело забил.

monk ★★★★★ ()
Ответ на: комментарий от quantum-troll

Это нынче называется «уделывает»?

Это уже обновлённые данные. Были cpp версии слегка медленней.

monk ★★★★★ ()
Ответ на: комментарий от fernandos

Вот именно. При равных вводных одна технология потребляет на 40 мегабайт больше.

Вводные не равные. Если бы лисп не был куском говна, то плюсом были бы преимущества языка для разработки по сравнению с С и С++, которые явно куски говна. И какой ценой - 40 МБ? Я готов заплатить если бы оно того стоило, что в случая Лиспа - нет

vertexua ★★★★★ ()
Ответ на: комментарий от anonymous

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

А кому можно решать? Точно не тебе - ты софт не пишешь.

Если пишешь - решай.

vertexua ★★★★★ ()
Ответ на: комментарий от vertexua

С и С++, которые явно куски говна

Если бы лисп не был куском говна,

Ок, давайте проще. Есть ЯП А — кусок говна, есть ЯП Б, тоже кусок говна. ЯП Б потребляет на 40 мегабайт больше, какой язык лучше?

fernandos ★★★ ()
Ответ на: комментарий от monk

плюсы и си не уделает никто, ибо они более всех близки к архитектуре проца.

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

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

alysnix ()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от fernandos

С этим понятно. Я тут не лисп защищаю, а гипотетический «лисп» который всего лишь копеечной ценой 40 МБ давал бы небывалые преимущества в разработке. Например преимущества такого масштаба, про которые кричат лишпофанатики до прихода санитаров. Тогда 40 МБ - это вообще ничего

vertexua ★★★★★ ()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Крестоносцам можно решать, потому что они для начала существуют (вот я например) и пишут софт, а не тесты на тему «как мы порвали сишечку». И этот софт работает, а не жрет память на ровном месте.

anonymous ()
Ответ на: комментарий от vertexua

Периодичность появления лавсанчика говорит о том, что время от времени они умудряются некоторое время от санитаров прятаться ☺

gremlin_the_red ★★★★ ()
Ответ на: комментарий от vertexua

опять же ЯБ («языки бога») в тестах сборкой мусора не занимались. то есть тесты ни о чем.

ничто мусоробсорочное не побьет по производительности немусоросборочное.

alysnix ()
Ответ на: комментарий от fernandos

Серьёзно, если эмулятор терминала или текстовый редактор начнёт жрать 40 мегабайт просто так, то это конец.

Так уже.

$ ps -eo rss,size,comm | grep term
46580 66772 gnome-terminal-
$ ps -eo rss,size,comm | grep emacs
65808 54564 emacs
monk ★★★★★ ()
Ответ на: комментарий от vertexua

А я про реальность.

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

fernandos ★★★ ()
Ответ на: комментарий от fernandos

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

Основное, что они дают — возможность отладки и продолжения работы программы. В некоторых случаях это полезно.

monk ★★★★★ ()
Ответ на: комментарий от fernandos

Гномотерминал написан на плюсах, там нет идиотизма с «+40 мегабайт ко всему».

Тем не менее пустой гномотерминал уже ест значительно больше тех 40 мегабайт.

monk ★★★★★ ()
Ответ на: комментарий от alysnix

то есть тесты ни о чем.

Ты смотри какой ты хитренький человек. Берешь и выбрасываешь на помойку преимущество того что сборка мусора позволяет отложить и совместить удаление памяти вместо кучи раздельных вызовов free, которые фрагментируют выделеную память.

А между прочим в языках со сборкой мусора, которая утрамбовывает указатели угадай какая алгоритмическая сложность new? Амортизированый O(1). Тоесть это практически всегда пару ассемблерных иструкций, кроме тех случай когда нужно остановить мир. Твои плюсы так могут только через замену аллокатора на свой.

vertexua ★★★★★ ()
Ответ на: комментарий от fernandos

Просто прекрасно, пойду устанавливать xdebug на сервер.

А толку? Он всё равно не даст изменить работающую программу. Обновление без простоя умеют Common Lisp и Erlang. Во всех остальных языках можно, максимум, заменить плагины.

monk ★★★★★ ()
Ответ на: комментарий от fernandos

А зачем код пользователю если у него уже есть блоб? Равнозначный вопрос. Столман считает что код нужен. Лисперы - что нужен отладчик.

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

anonymous ()
Ответ на: комментарий от anonymous

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

Кстати, напомни, ты через что щас на ЛОРе сидишь, и какой стек технологий «оно» крутит и сколько мегабайт отжирает на старте?

anonymous ()
Ответ на: комментарий от monk

Ну как же, наличие отладки позволит сохранить мне ххх долларов.

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

Он всё равно не даст изменить работающую программу

Знаете, сколько раз мне надо было менять работающую программу? Речь не про модули и ко.

fernandos ★★★ ()
Ответ на: комментарий от fernandos

Знаете, сколько раз мне надо было менять работающую программу?

Я так никогда не делал, да как вы смеете?

anonymous ()
Ответ на: комментарий от fernandos

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

Кстати, в 1С как раз воткнут отладчик и его наличие также иногда экономит несколько часов времени. Даже если программа правильно работает, но просто надо понять каких действий от пользователя она ждёт. А почти операционная система запихнута в Emacs. Тоже приносит много пользы.

Если Вам лично какая-то функция не нужна, это не значит что она никому не нужна. И, с другой стороны, Вас кто-то заставляет использовать Common Lisp? Свобода же.

monk ★★★★★ ()
Ответ на: комментарий от anonymous

Оно сейчас существует и работает, а не просто отжирает память, чтобы почесать лишпобыдлячье ЧСВ.

anonymous ()
Ответ на: комментарий от fernandos

просто это не является чем-то крайне необходимым, зато память жрёт

ты на лоре зачем сидишь? браузер ведь память жрет. или не жрет?

anonymous ()
Ответ на: комментарий от vertexua

Ты смотри какой ты хитренький человек. Берешь и выбрасываешь на помойку преимущество того что сборка мусора позволяет отложить и совместить удаление памяти вместо кучи раздельных вызовов free, которые фрагментируют выделеную память.

если без уплотнения - они все равно это делают по «free», поскольку мусор раскидан по памяти стохастически.

а если с уплотнением - то это перенос всей занятой памяти в начало кучи, коррекция адресов в прокси-указателях, мусор еще надо найти, плюс проблемы с потоками…это вообще не сравнимо с работой malloc/free.

А между прочим в языках со сборкой мусора, которая утрамбовывает указатели угадай какая алгоритмическая сложность new? Амортизированый O(1).

в хипменеджерах масса всяких стратегий, но наиболее попсовая - списки свободной памяти со свободными блоками фиксированого размера. то есть если вам надо N байт, тут же берется список свободных блоков с размером ближайшим(сверху) к этим N байт и первый блок оттуда отдается вам. сложность O(1).

фрагментации не просходит по любому, поскольку при освобождении всегда делается слияние со свободными соседями. получается большой блок, который кладется в подходящий список свободных.

работы ЗНАЧИТЕЛЬНО меньше чем мусор собирать.

alysnix ()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от monk

Тоже приносит много пользы

И много вреда. Емакс очень усложнён.

Если Вам лично какая-то функция не нужна, это не значит что она никому не нужна

Понятное дело, что кому-то она нужна. Но я более чем уверен, что таких людей не много, и не вижу причины включать эту функцию по умолчанию.

Вас кто-то заставляет использовать Common Lisp

Нет конечно, я лишь обсуждаю некоторые моменты, которые мне не ясны и/или не нравятся.

fernandos ★★★ ()
Ответ на: комментарий от monk

Получится. Чудес не бывает. Идеально написанная программа на лиспе будет чуть медленнее, чем идеально написанная на си++ с таким же алгоритмом. Потому что абстракции не бесплатны.

При этом, лисповый программист уже премию пропьёт, пока крестовый всё ещё отлаживается.

mv ★★★★★ ()
Ответ на: комментарий от anonymous

ты не ответил на вопрос. жопа горэ?

лисп можно любить просто за то как он подрывает манямирки птушников.

anonymous ()
Ответ на: комментарий от anonymous

Браузер — огромная махина для удешевления написания программ.

Он жрёт память, но на это есть причина — браузер предоставляет огромнейший уровень абстракций для построения ПО.

fernandos ★★★ ()
Ответ на: комментарий от mv

лисповый программист уже премию пропьёт

Не премию, а аванс, и так ничего и не напишет (как лавсанчик игру не написал и не напишет).

anonymous ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)