@dlangru

Страница 362 из 719
Evgeny
05.01.2018
15:43:37
что именно пояснить?

GC в дешке обречен быть как минимум тормозным, и наверняка текучим

для long running задач не подходит

Google
Evil
05.01.2018
15:49:12
Ну словари он не чистит практически

Тормоза-тормоза я не ощущал, даже при загрузке памяти на 10гб

Может сравнить нету с чем такую задачу

Расскажи, на чем ты свои выводы строишь

Ned Ogl
05.01.2018
15:57:22
Evgeny
05.01.2018
15:59:26
Расскажи, на чем ты свои выводы строишь
Я строю свои выводы на реальном сервисе написанном мною целиком на D с использованием vibe.d Сервис достаточно сильно нагружен.

при большом количестве маленьких обектов (у меня их крутится порядка сотен тысяч) тормоза заметные. GC если верить профилировщику, может до 20% времени работы программы жрать

а иногда и зависает слегка

спорим @deviator с тобой не согласится?)
а что @deviator профессионально программирует МК на D?

Evgeny
05.01.2018
16:03:23
интересно послушать, правда ли это и как он решает проблемы с полным отсутствием сколь-нибудь серьезных либ

Google
Evgeny
05.01.2018
16:08:04
весить?

Ned Ogl
05.01.2018
16:08:11
именно

в памяти

Evgeny
05.01.2018
16:08:34
на вес вообще наплевать, кого волнует вес при терабайтный накопителях?

Ned Ogl
05.01.2018
16:08:46
оперативной, лол

Evgeny
05.01.2018
16:08:51
тут дело не в качестве, а в принципиальной невозможности

Ned Ogl
05.01.2018
16:09:05
сейчас модно пилить веб-сервера на малинке, туда DDR не воткнёшь

Evgeny
05.01.2018
16:09:32
на малинке крутятся веб-сервера на питоне

Ned Ogl
05.01.2018
16:09:37
тут дело не в качестве, а в принципиальной невозможности
да почему? почему вот джаверы хвалятся своим сборщиком, а мы должны сасаить?

Evgeny
05.01.2018
16:09:40
о чем ты вообще тут говоришь?

потом что жаба вертится на виртальной машине, а D - компилируется в натив код

Ned Ogl
05.01.2018
16:10:33
о том, что если ты пилишь веб-сервер на Ди и тебе нужен сборщик, крутой зашибенный сборщик схавает много оперативки и малинка начнёт свапить страницы

что ещё хуже замедлит работу

тут уже целесообразно самому аккуратно разбираться с памятью

профилировать и отсекать лишнее

Evgeny
05.01.2018
16:11:52
На малинке отлично крутится и жаба и питон со сборщиками мусора

Oleg
05.01.2018
16:11:57
а что @deviator профессионально программирует МК на D?
Эй эй стоп стоп стоп, это не правда. Я под armv7 пишу, который rpi (соответственно linux на борту)

Evgeny
05.01.2018
16:12:07
кто тебе вообще сказал, что качественный сборщик мусора занимает много места в памяти?

Ned Ogl
05.01.2018
16:12:50
а кто тогда сказал тебе, что он в Ди теоретически неосуществим?

Evgeny
05.01.2018
16:13:19
Google
Evgeny
05.01.2018
16:13:45
Выбор алгоритмов GC на дешке, увы невелик

Ned Ogl
05.01.2018
16:14:34
если честно, я не очень понимаю, зачем делают из системного языка энтерпрайз-лошадьи начиняют его всякими этими сборщиками

Я не очень ясно выразился

Evgeny
05.01.2018
16:15:08
Boehm–Demers–Weiser, Precise GC (который еще тормознее, но меньше течет)

Сделали бы качественный ARC и вот тебе замена сборщику как на плюсах

а сейчас даже если сам сделаешь ARC потом все равно куча говна на границах между ARC-модулями и не ARC

Ned Ogl
05.01.2018
16:18:09
С другой стороны, это не Уолтер Брайт - тот парень, который задал тенденцию скрещивать системные языки с ООП и синтаксически их сахарить. И Ди в данном случае пытается подстроиться под уже существующие (и долгоиграющие) тренды

Потому концептуально мне очень нравится идея с betterC

Она немного разграничивает системщину и прикладное программирование

Evgeny
05.01.2018
16:19:10
Как я уже говорил, де-факто она ничего не разграничивает

Ned Ogl
05.01.2018
16:19:16
С другой стороны в режиме не-беттерС всё равно нужна оптимизация

Evgeny
05.01.2018
16:19:34
nogc - вот тебе и все системное программирование

betterC - не нужен

Pavel
05.01.2018
16:20:04
Дать языку мощь и гибкость и простоту интерпретируемого при этом оставаясь как можно более низкоуровневым.

Evgeny
05.01.2018
16:21:02
дык сам язык получился норм

но можно было его и без GC сделать

представте себе плюсы с человеческими шаблонам и прочими плюшками - орды плюсовиков ваши

Ned Ogl
05.01.2018
16:22:06
nogc - вот тебе и все системное программирование
Об этом поподробнее... Ты намекаешь, что раз уж лезть в линкер-скрипты, то и мусор стрипнуть ничто не мешает?

Google
Evgeny
05.01.2018
16:22:08
но пришел Alxandrescu и все испортил

Ned Ogl
05.01.2018
16:22:23
Evgeny
05.01.2018
16:23:30
Об этом поподробнее... Ты намекаешь, что раз уж лезть в линкер-скрипты, то и мусор стрипнуть ничто не мешает?
зачем лезть в линкер скрипты? рантайм - это на 90% сборщик мусора, RTTI и прочие исключения, все это режется при желании

Ned Ogl
05.01.2018
16:23:49
ну, и как режется?

я вот о чём

Evgeny
05.01.2018
16:23:57
Как в плюсах

Ned Ogl
05.01.2018
16:24:03
эмм?

Evgeny
05.01.2018
16:24:24
В плюсах можно отпилить эксепшены и RTTI, а GC там и так нету

Ned Ogl
05.01.2018
16:24:36
-ffreestanding -nostdlib -nostdinc ?

Admin
ERROR: S client not available

Evgeny
05.01.2018
16:25:07
Это же какой-нибудь rust/nim тогда получается.
в Nim есть сборщик мусора. Rust совсем не похож на плюсы

или какие там опции, я уже не помню

Ned Ogl
05.01.2018
16:26:35
есть нечто такое, да

Evgeny
05.01.2018
16:26:51
при этом компилер поругается если попытаться это применить

Ned Ogl
05.01.2018
16:28:38
погоди, ты про шланг сейчас?

мол, шланг может и ldc может?

Evgeny
05.01.2018
16:46:06
я про gcc, шлангом не пользовался

Ned Ogl
05.01.2018
18:59:59
ребят, я тупой, наверное

Google
Ned Ogl
05.01.2018
19:00:07
почему я не могу нормально ввести строку?

я ввожу, а там строка с приклеенным '\n'

чем её в нормальный вид привести?

кстати, я впервые пишу консольное приложение на D)

Igor
05.01.2018
19:01:19
data.strip() ?

Ned Ogl
05.01.2018
19:03:35
data.strip() ?
м, спасибо

data.strip() ?
а почему он, кстати, залупается, если я делаю strip(str)?

зато str.strip() работает....

судя по UFCS это взаимозаменяемые способы

Igor
05.01.2018
19:38:55
что значит “залупается”? сообщение об ошибке есть?

Ned Ogl
05.01.2018
19:39:54
я проcт пробовал вызывать chomp(str, '\n');

и сообщение было "не могу найти подходящий шаблон под ваш вызов"

и это неудивительно, ведь надо было вызывать сhomp(str, "\n")

Igor
05.01.2018
19:41:54
хотел “\n”

Ned Ogl
05.01.2018
19:42:28
ну вот, я в мире работы с памятью живу, не знал про всякие стдлибские ништяки

Oleg
05.01.2018
19:52:47
Tom
06.01.2018
03:11:28
Dmitry
06.01.2018
05:08:10
впиливать GC в дешку было ошибкой. Не потому что GC - это плохо, а потом что в дешке нормальный GC сделать невозможно
Си-подобный нативный язык с шаблонами и без GC уже есть - это С++. Делать совсем уж клон С++ нет смысла.

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

Для меня привлекательность D как раз в том, что можно писать как на C#, только мощнее (богатые шаблоны, интроспекция), и на выходе получаю нативный бинарник, не требующий установки никаких VM (CLR/JVM).

А что GC тормозной - ну да, это fact of life, надо научиться это осознавать и иметь в виду, когда решаешь, стоит ли в конкретном проекте использовать D. И если решил использовать, то аккуратно подходить к тому, что держать в GC куче, а что выделять вне ее.

Evgeny
06.01.2018
06:26:56
Тебя послушать, то можно подумать, что D - это всего лишь плюсы со сборщиком мусора.

Страница 362 из 719