|
|
3.45, Аноним (45), 17:32, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –3 +/– |
> тренера не играют
Лол, какие тренера, если в C корутин вообще нет и не будет, а в плюсах они появились лишь в стандарте 2020 года.
| |
|
4.53, Аноним (53), 17:45, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
> Лол, какие тренера, если в C корутин вообще нет и не будет,
Да могли бы хотя-бы и треды заспаунить каким-нибудь posix threads. Это даже круче ибо полновесные потоки. Интересно же столь наивный brute force в сравнении будет.
А так какой-нибудь lwan - готов заспорить чего там нет. Правда оно там специфичное, под задачу. Си достаточно низкоуровневый чтобы на нем делать многое из того для чего в каком-нибудь Rust придется синтаксис корежить, а в игого и прочих питонах - чешут репу и сообщают что задача нерешаема.
> а в плюсах они появились лишь в стандарте 2020 года.
И что? Для хруста же можно взять какие-то вообще сторонние "фреймворки" или для жабы - разные VM. А в чем проблемы взять компилер с C++23 тогда?!
| |
|
5.58, Аноним (58), 17:49, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
> Правда оно там специфичное, под задачу. Си достаточно низкоуровневый чтобы на нем делать многое из того для чего в каком-нибудь Rust придется синтаксис корежить, а в игого и прочих питонах - чешут репу и сообщают что задача нерешаема.
Угу, то-то Торвальдся жалуется, что за 30 лет нормальный менеджмент памяти не осилили.
Но про "специфичное" соглашусь)
> И что? Для хруста же можно взять какие-то вообще сторонние "фреймворки" или для жабы - разные VM. А в чем проблемы взять компилер с C++23 тогда?!
Там есть не только фреймворк, но STD.
| |
|
6.234, glad_valakas (?), 07:45, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> жалуется, что за 30 лет нормальный менеджмент памяти не осилили.
прошу уточнить что такое "нормальный менеджмент памяти".
когда GC запускается по желанию своей левой пятки и по закону подлости всегда не вовремя - это "нормальный менеджмент памяти" ? почему ?
| |
|
5.90, Аноним (90), 18:56, 29/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
>> Лол, какие тренера, если в C корутин вообще нет и не будет,
> Да могли бы хотя-бы и треды заспаунить каким-нибудь posix threads
Не могли бы, ибо смысл был именно в замере корутин, а не потоков.
| |
|
6.190, pavlinux (ok), 00:31, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –3 +/– |
Абдолноним, задание читал?
"Давайте запустим N одновременных задач, где каждая задача ждет 10 секунд,
а затем программа существует после завершения всех задач. Количество задач
контролируется аргументом командной строки."
Где ты увидело "корутин"
| |
|
7.290, Аноним (290), 13:16, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Абдолноним, задание читал?
> "Давайте запустим N одновр...
Следующее предложение из оригинальной статьи ты тактично решил опустить? Или ты по-английски не бум-бум?
"This time, let's focus on coroutine instead of multiple threads."
| |
|
6.212, Аноним (-), 04:14, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –2 +/– |
>>> Лол, какие тренера, если в C корутин вообще нет и не будет,
>> Да могли бы хотя-бы и треды заспаунить каким-нибудь posix threads
> Не могли бы, ибо смысл был именно в замере корутин, а не потоков.
Это где такое было написано? Или это измышлизмы какого-то анонма с опеннета на тему?
| |
|
7.291, Аноним (290), 13:18, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Это где такое было написано? Или это измышлизмы какого-то анонма с опеннета на тему?
Это написано черным по белому буквально в начале оргинальной статьи:
This time, let's focus on coroutine instead of multiple threads.
| |
|
|
|
|
5.214, Аноним (-), 04:19, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>>в C корутин вообще нет и не будет
> Системный вызов fork никто не отменял.
Ну вообще-то вот именно fork(), в колличестве миллион, тебе очень врядли понравится. Особенно если это именно - форк, т.е. новые процессы. Это будет долго - и сожрет изрядно памяти.
Если это lwp и какой-нибудь clone()... может быть, но можно было не выделываться и стартануть тред как нормальный человек, позиксной библой.
| |
|
|
3.180, Овцелюб (-), 23:04, 29/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
> Отправлено Барашек, 29-Ноя-24 16:44
> тренера не играют
Один тренер уже старенький, скоро помрет.
Второй может и хотел бы поучаствовать, но никто его больше не приглашает.
| |
|
2.42, Аноним (42), 17:28, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
Скорее всего Rust будет наиболее близким к их результатам так что можно мысленно убавить несколько позиций от Rust и получить примерный результат C/CPP
| |
2.44, Аноним (45), 17:29, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
> А где C/C++?
А в C нет корутин 😂
В C++ они появились только в 2020 году. Видимо, люди как пользовались Бустом, так и продолжают пользоваться.
| |
|
3.55, Аноним (53), 17:48, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +6 +/– |
> А в C нет корутин 😂
В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!
> В C++ они появились только в 2020 году. Видимо, люди как пользовались Бустом,
> так и продолжают пользоваться.
Это какой-то не особо убедительный аргумент для обоснования результатов бенчмарка и "почему нет %s".
| |
|
4.62, Аноним (62), 17:53, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
> Это какой-то не особо убедительный аргумент для обоснования результатов бенчмарка и "почему нет %s".
А кто мешает - тебе, как больше всех "надобному"?
А то ты уже минимум два поста накатал, почему и как можно было бы ... Или у тебя лапки?
| |
4.63, Аноним (58), 17:54, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
>> А в C нет корутин 😂
> В си есть возможность их сделать - и ест реализации.
Но в стандарте нету. А стандарт это святое!
Понятно, что и на брейнфаке можно сделать, но получится брейнфачно.
> И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!
Потому что у хруста 2 версии - async_std и кастомщина.
Можно посмотреть и решить, стоит ли заморачиваться с токио или достаточно того что "из коробки".
| |
|
5.156, morphe (?), 20:34, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Можно посмотреть и решить, стоит ли заморачиваться с токио или достаточно того что "из коробки".
async-std - не из коробки, это сторонняя библиотека, дефолтная стандартная библиотека не включает в себя рантайм, а лишь всё что нужно для его реализации.
Де-факто стандартным рантаймом же считается tokio.
| |
|
4.84, Аноним (90), 18:50, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –2 +/– |
> В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!
Потому что бессмысленно, ибо сегодня удел C - это сугубо embedded, а где ты там будешь тулить корутины?
| |
|
5.276, laindono (ok), 11:32, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
В чём проблема использовать корутины в embedded? Более того, они там весьма активно используются. Это ведь вариация кооперативной многозадачности.
| |
|
6.294, Аноним (290), 13:31, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> В чём проблема использовать корутины в embedded?
В том, что для stackless корутин на сях нужно юзать кучу, что затратно или вообще запрещено условной Мизрой. А для stackful корутин вообще нужна поддержка компилятора, чего в сишке нет (а с setjmp/longjmp ты сразу полючаешь UB из-за мусора в локальных переменных, если они менялись после setjmp и не были промаркированы volatile).
| |
|
7.311, laindono (ok), 16:36, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Значит берём язык, который лучше подходит. Например Rust. Его корутины очень хорошо подходят в том числе и для embedded.
> нужно юзать кучу, что затратно
Если куча слишком дорогая выходит, то надо брать более адекватные задаче камни. Что может быть дорогого в простейшем bump-аллокаторе? В любом случае, если для решения задачи в принципе нужно кооперативную многозадачность делать, то это не самые минималистическе камни уже.
| |
|
|
5.317, Аноним (-), 19:41, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> Потому что бессмысленно, ибо сегодня удел C - это сугубо embedded, а
> где ты там будешь тулить корутины?
А твое сообщение сюда, конечно же, было написано из Servo - под Redox или Fuchsia, не меньше? А если нет - тогда это wishful thinking очередного утенка, не более :)
| |
|
4.133, Страдивариус (?), 19:28, 29/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!
Сразу видно человека, который никогда не пользовался какой-нибудь из реализаций на Си, и какой-нибудь реализацией на расте.
Невозможно сделать stackless корутину без помощи компилятора. Кто будет код твоей функции в конечный автомат превращать?
| |
|
5.217, Аноним (-), 04:24, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
>> В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!
> Сразу видно человека, который никогда не пользовался какой-нибудь из реализаций на Си,
> и какой-нибудь реализацией на расте.
> Невозможно сделать stackless корутину без помощи компилятора. Кто будет код твоей функции
> в конечный автомат превращать?
В сях есть setjmp/longjmp коих достаточно для - внезапно - создания корутин. Чем дофига народа и развлекается. А еще есть наконец и просто треды, позиксные или даже уже и - таки - стандартные сишные. Но, видимо, хрустикам прикольнее избивать жаб и гадюк палкой, а то от этих ведь еще и получить можно!
| |
|
6.328, Страдивариус (?), 20:17, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
Я же тебе написал про stackless. Причем тут setjmp, чудо ты в перьях?
А что касается тредов - ну создай миллион тредов, хоть позиксных, хоть сишных - посмотрю на тебя, клоун-школотрон =)
| |
|
|
|
|
|
3.117, Аноним (62), 19:14, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> с ними график был бы некрасивый, один пиксель и С/С++ и все пиксели у остальных
"Talk is cheap, show me the code!"(c)
| |
|
|
|
2.196, OpenEcho (?), 01:48, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +2 +/– |
> Вот тебе и Go...
Абстрактный тест с нереальной задачей, и все, - разочарование... :)
И вообще, приведенная Го программа этим тестировщиком, не должна компилироваться в принципе, так как содержит банальную ошибку.
Люди забывают кажется уже в этой абстрактности, что есть банальное, реальное железо, в 4, 8..500 корок ЦПУ, но никак уж не 1М, даже с сетевыми задачами, где приходится ожидать, можно несколько тысяч на кор, можно даже несколько десятков тысяч если проц силен, но точно уж не миллион. Реальные задачи с одним миллионом конкурентности - это чушь, если конечно они не спешат дождаться выполнения. Такие задачи выполняются в очередях, учитывая реальное количество процессоров
| |
|
|
|
|
6.342, OpenEcho (?), 04:11, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
>> И где это там ты очередь разглядел ?
> А как по-твоему рантайм шедулит таски? Рантайм делает именно то, о чём
> ты говоришь, берёт таски, готовые выполняться и складывает о очередь.
О чем ты, человек ?
Посмотри еще раз на исходный код программы ! где ты там шедулеры разглядел?
На код смотри, а не на то, как оно там под капотом и как оно тебе кажется
| |
|
7.354, Прохожий (??), 13:58, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
>Посмотри еще раз на исходный код программы ! где ты там шедулеры разглядел?
>На код смотри, а не на то, как оно там под капотом и как оно тебе кажется
Так вам же написали, что шедулер обеспечивается рантаймом. Почитайте, как организованы корутины и асинхронщина в Го для начала.
| |
|
|
|
6.382, OpenEcho (?), 13:11, 02/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Абсолютно согласен.
> Совершенно синтетический тест: как будто никто не знал что горутины жрут много
> памяти из-за стека, вот это сюрприз. Такие ситуации разруливаются просто по-другому:
> https://github.com/valyala/fasthttp/tree/master/stackless
Да не о чем говорить и тем более спорить с людьми, которые банальный цикл не видят, зато разглагольсвуют о гипотетической магии шедулеров рантайма и тыкают в википедию, при этом вообще не понимая, что делает программа
| |
|
|
|
|
2.282, Аноним (282), 12:26, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +2 +/– |
Просто Go создаёт реальные горутины, готовые к исполнению (легковесные потоки), а остальные очередь на исполнение кода (список задач). Просто разные подходы под разные потребности.
| |
2.363, Аноним (360), 17:50, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Нормально всё с Go. Да, Rust лучше/быстрее/надёжнее, но вы пробовали обучить Rust'у команду мидлов за 3 месяца? А с Go всё получилось.
| |
|
|
|
3.18, Аноним (18), 16:57, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Я не программист всех языков, в отличии от остальных комментаторов, но мои хеллоуворлды работали исправно :-)
| |
3.161, _kp (ok), 21:01, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +2 +/– |
Да. В Wine никаких проблем.
Зачем так? Если разработчик, и можешь собрать как угодно?
Да возникла проблема с библиотекой, с открытой, и кроссплатформенной, которая нативная для Linux имела проблемы.
А надо сдавать, а не в чужом и большом коде копаться. Ну сделали через Wine. Временно.
А потом подумали, и нафига версии для Linux и Windows делать, если в Wine все отлично.
И тут с c# все проблемы как рукой сняло. ;)
| |
|
|
5.320, Аноним (-), 19:49, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
>> Да. В Wine никаких проблем.
> Но зачем, если дотнет сейчас полностью кроссплатформенный?
Вот прямо полностью? И можно написать 1 графическую прогу на винду, линух и мак и это даже работать будет? Или у вас как обычно у майрософт - звездочки пятым шрифтом, с множествлм уточнений и подлянок?
| |
|
6.350, Илья (??), 11:41, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> И можно написать 1 графическую прогу на винду, линух и мак и это даже работать будет?
Avalonia. Или можно вообще ксамарин попробовать, тогда ещё и с мобилками общий гуй будет
| |
|
5.365, _kp (ok), 20:54, 01/12/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>> Да. В Wine никаких проблем.
> Но зачем, если дотнет сейчас полностью кроссплатформенный?
Я ж написал. Если нативная библиотека с багом, уже кроспатформенность остального не важна. Просто до следующего крупного обновления, просто так переделывать никто не станет, и тем более за даром.
А с Wine можно много что перетащить, ибо свое ПО подправить быстрее, чтоб в Wine было хорошо, чем переписать, не все же на дотнет переписано.
| |
|
|
3.200, мяв (?), 03:38, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
да.
mono хорошо работает. правда, в девуане были какие-то непонятки с GAC, из-за чего он не работал в 11й версии.
сейчас все норм.
больше скажу, даже под freebsd все хорошо.
| |
|
4.273, Илья (??), 11:03, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
> mono хорошо работает
Пацаны, вы из какой криокамеры? Дотнет максимально кроссплатформенный и устанавливается в 2-3 команды на любую ОС. Моно давно в историю должен уйти
| |
|
5.304, мяв (?), 14:49, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
>вы из какой криокамеры?
Вы под какими спидами?
новость о переходе разработок в dotnet/runtime была где-то в середине лета, если не под его конец.
в дебиане и рхел'е все так же mono.
| |
|
6.319, Аноним (-), 19:47, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Вы под какими спидами?
Маркетинга майкрософта сэр явно пережрал. Хотя у него в маздае оно вообще - ставится добровольно-принудительно, хрен откажешься от этого летающего макаронного монстра.
> новость о переходе разработок в dotnet/runtime была где-то в середине лета, если
> не под его конец.
> в дебиане и рхел'е все так же mono.
И гуя кроссплатформенного там нет даже в проекте. Но когда бесстыжих фанбоев MS пишущих о кроссплатформе из маздайки такое смущало? А потом эти люди почему-то удивляются что в Linux их таких - в гробу видали, и программ на этом полторы штуки за все время существования этой хтони.
| |
|
7.377, User (??), 07:41, 02/12/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> И гуя кроссплатформенного там нет даже в проекте. Но когда бесстыжих фанбоев MS пишущих о кроссплатформе из маздайки такое смущало? А потом эти люди почему-то удивляются что в Linux их таких - в гробу видали, и программ на этом полторы штуки за все время существования этой хтони.
И накой тебе тот гуй на сервере? А десктопа под онтопик один черт нет, и уже не будет - фигли под него писать? Электрон есть, им и обмазывайся.
| |
|
|
5.318, Аноним (-), 19:45, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
> Пацаны, вы из какой криокамеры? Дотнет максимально кроссплатформенный и устанавливается
> в 2-3 команды на любую ОС. Моно давно в историю должен уйти
При том настолько максимально кроссплатформенный - что кроссплатформенного в нем UI нету от слова вообше.
Фанбои майкрософта - не лучше чем сам майкрософт, тоже врут с три короба на каждом углу. И что на этой какахе делать предлагается? Веб? Это там мучительно и безблагодатно. Go какой-нибудь в 5 раз проще и компактнее, и сразу в нативный код компилится - без гигабайтов ассемблей и виртуалок.
| |
|
6.339, мяв (?), 02:22, 01/12/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
>UI нету от слова вообше.
есть биединги к qt и gtk.
>Веб?
хоть cli - с появлением AOT это больше не проблема.
в гноме даже заметки были на С#.
>без гигабайтов ассемблей и виртуалок.
во-первых, кто и где Вам показал "гигабайты ассемблей" ?
во-вторых, man ".NET AOT"
>Фанбои майкрософта - не лучше чем сам майкрософт, тоже врут с три короба на каждом углу.
хейтеры - тоже не ахти.
| |
6.351, Илья (??), 11:49, 01/12/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> кроссплатформенного в нем UI нету от слова вообше.
AvaloniaUI, Android и IOS обёртки, GTK, QT, там много чего
> Фанбои майкрософта - не лучше чем сам майкрософт, тоже врут с три короба на каждом углу.
Все сговорились. Но ты не проверяй, мы тебе врём, да
> И что на этой какахе делать предлагается? Веб?
Да
> Go какой-нибудь в 5 раз проще и компактнее, и сразу в нативный код компилится - без гигабайтов ассемблей и виртуалок.
Нет. На дотнете веб гораздо лучше выходит. Там с годами наработанная инфраструктура. Производительность выше.
| |
|
5.366, _kp (ok), 20:57, 01/12/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Дотнет максимально кроссплатформенный
Если что то сильно крупнее хелловордов, то оно и библиотеки использует, а там может и API чуть отличаться, и работатать чуть иначе, а моем случае и явные баги попались.
| |
|
|
3.274, Илья (??), 11:04, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +2 +/– |
> Вы пробовали использовать его на Debian/Ubuntu/Arch Linux? Каковы ваши впечатления?
Примерно лучшее, что есть на сегодняшний день.
| |
|
|
|
2.16, ijuij (?), 16:56, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Это вполне ожидаемо. Я применяю его для разработки MVP, а если продукт окажется успешным, то перепишу его на C++.
| |
|
|
4.46, Аноним (-), 17:34, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
> А почему не раст?)
Может у человека 10-20 лет опыта плюсов и он все грабли знает наизусть.
А может проекты не стоят затрат сил на обеспечение надежности и безопасности.
| |
|
5.248, Прохожий (??), 09:54, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>А может проекты не стоят затрат сил на обеспечение надежности и безопасности
Гугл продемонстрировал, что производительность программистов на Rust выше, чем у программистов на C++. И качество кода тоже лучше.
| |
|
6.256, Омномним (?), 10:22, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Вот ети все статистики работют для больших чисел. Когда есть хотя б 40-50 прогеров.
Для одного единственного, может и не сработать.
| |
|
|
|
|
4.60, Аноним (53), 17:51, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Замени го на питон.
А чего все остальные в вебе - наоборот делают? А, вы наверное продаете серваки и недовольны падением продаж?! :)
> И плюсы на раст. и тогда все будет правильно, быстрее, удобно и надежнее.
И заодно програмер через годик-другой сольется от постоянной гонки за скачайте ночнушку - и проект помрет. Зато можно будет продать еще серваков - уже новому лоху.
| |
|
5.275, Илья (??), 11:19, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
> Скорость разработки на нём не намного ниже чем на питоне
На питоне в итоге худшая скорость разработки получается.
Там скорость чтения кода очень низкая. Хрупкий, куски кода часто приходится переписывать с нуля. Я думал, от питона сознательные люди отказались давно
| |
|
6.322, Аноним (-), 19:52, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> Скорость разработки на нём не намного ниже чем на питоне
> На питоне в итоге худшая скорость разработки получается.
> Там скорость чтения кода очень низкая. Хрупкий, куски кода часто приходится переписывать
> с нуля. Я думал, от питона сознательные люди отказались давно
А чтобы не скучали - в каждой новой версии что-нибудь ломают или меняют. В какой-то момент Гвидо наконец и самого припекло жить на вулкане, он сказал что устал и уходит, свалив с трона.
| |
|
7.353, Илья (??), 11:55, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Питон вообще одноразовым у нас считался. Ребята пишут код, потом вместо того, чтобы баги править всё с нуля переписывают.
Хз, для каких проектов его используют, думаю, люди сами себе не враги, чтобы так мучиться
| |
|
|
5.367, _kp (ok), 21:03, 01/12/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> Скорость разработки на нём не намного ниже чем на питоне
Странно, после Питона что угодно быстрее.
Точнее, чем больше ПО, тем медленнее и труднее его разработка на Питоне, а для небольших повседневных скриптов конфетка. Скриптов замечу, где с данными можно манипулировать как угодно, затратив минимум времени на написание.
| |
5.385, Карлос Сношайтилис (ok), 23:15, 02/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> flask
Товарищ разработчик! Настоятельно рекомендуем смотреть на дату, когда вы что-то читаете на stack overflow.
Питон, конечно не быстрый, но 10 rps на простых шаблонах, это надо умудриться. Даже на фляжке.
FastAPI и jinja2 спасут отца русской демократии. Хотя там тоже можно упорото промахнуться, но я надеюсь, что шаблон проекта можно найти без проблем.
> каждый uwsgi воркер этого приложения жрёт 100MB+ памяти
То есть ты, на каждый запрос, поднимешь новый инстанс питона и удивляешься, что оно жрёт много памяти и работает медленно?
Тогда предлагаю пойти дальше, развернуть кубер и поднимать сразу отдельный под. Чо уш мелочиться...
| |
|
|
3.199, Аноним (199), 03:04, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> если продукт окажется успешным, то перепишу его на C++
... и окажешься первым на планете, кто гошное приложение переписал на плюсы, а не просто докупил железа. Хотя, возможно, это потому, что окажешься первым, кто написал на го УСПЕШНЫЙ продукт...
| |
|
|
|
2.37, Аноним (37), 17:19, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Ты различаешь скорость работы и жручесть памяти? По скорости ява вполне сравнима даже с компилируемыми в нативщину языками, а вот по жручести памяти полное днище. Это было основное, что мне в ней крайне не нравилось.
| |
|
|
|
5.324, Аноним (-), 19:55, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Пользовался IDE на Java и по ощущениям — сплошные тормоза.
Да что там, Arduino - по уровню фич чуть лучше нотпада, ну ладно, может на уровне Mousepad какого-нибудь микроскопического. Но тормозит и лагает эта лабуда - как Qt Creator какой, только этот - мощный дредноут для разборки с проектами космического масштаба, а ардуино - так, блокнотик с прошивалкой.
| |
|
|
3.254, microcoder (ok), 10:21, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
> Ты различаешь скорость работы и жручесть памяти?
Жручесть памяти = выделение памяти, а выделение памяти это процессорное время + время на GC, что является "лишними" вычислениями, а равно - ТОРМОЗНУТОСТИ. Эта простая формула.
| |
|
|
1.11, Шарп (ok), 16:52, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
По сути c# с AOT победитель, потому что память потребляет чуть больше раста, но при этом является нормальным языком без необходимости приседать с borrow checker.
| |
|
2.15, Аноним (18), 16:55, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
В долгосрочной перспективе победитель нода :-) Потому что вообще не надо конпилять, уже занимает львиную долю рынка и относительно простая в плане освоения. Но шарп хорош тем, что он не только для вэба.
| |
|
3.30, Rev (ok), 17:13, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +2 +/– |
Ага, а дистрибутивы продукта занимают гигабайты, состоя из 30000 файлов.
Нода - самый отстой из всего. На втором месте руби.
| |
|
4.49, НяшМяш (ok), 17:41, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –4 +/– |
Пакет ноды занимает 50-60 мегабайт в моём дистрибутиве после распаковки. Даже меньше, чем питон. Найти приложение на ноде с гигабайтами исходников надо ещё постараться. Да и есть кучи компилеров, транспилеров и бандлеров, чтобы это всё упаковать в компактный вид.
| |
|
5.177, fuggy (ok), 22:40, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Легко средний проект занимает 50-90К файлов. Всё это добро занимает 400-700МБ. И это только исходники. Ведь каждый пакет это однострочная функцию, к которой в комплекте source map, файл лицензии, readme, changelog, тесты, данные для тестов. И всё это только для одного пакета из одной функции. И таких пакетов тысячи.
| |
|
|
3.100, Олололололололо (-), 19:02, 29/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Любой проект на ноде тащит за собой миллиарды миллиардов файлов с npm сайта. Кто-то проверят, что в этих файлах понаписали? Нет, нет и нет. В результате если писать хоть сколько либо серьёзный проект на ноде нужно писать всё с нуля и не использовать ни одного пакета с npm, а так на ноде не бывает.
| |
|
4.203, Аноним (203), 03:51, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Разве язык виноват в том, что репозиторий превратился в пoмoйку? Не хочешь тащить вacянскиe библиотеки и фреймворки? — Пиши с нуля. (вопреки популярному мнению среди смyзиxлeбoв, это не самая худшая практика)
| |
4.258, microcoder (ok), 10:27, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
> Кто-то проверят, что в этих файлах понаписали? Нет, нет и нет.
Кто-то Винду проверяет что там понаписано? А Линукс, где десятки тысяч пакетов от "васянов", кто это всё проверяет, каждую строчку, что там понаписано?
| |
|
|
6.355, Прохожий (??), 14:06, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Вообще-то код Винды можно получить для аудита. Но для этого надо иметь веские основания. Например, вы - госучреждение какое. Или работаете на правительство.
| |
|
|
4.295, Liin (ok), 13:36, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
> Кто-то проверят, что в этих файлах понаписали? Нет, нет и нет.
Конечно проверяют, случаи выпиливания троянов известны.
А Вы думаете в других открытых проектах по-другому? Наивный Вы, конечно. Погуглите, к примеру, недавний случай с XZ backdoor.
| |
|
|
|
3.246, мяв (?), 09:28, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
а Вы в курсе вообще, что такое ref?
"поприседать" можно будет с unsafe-контекстами. а ref - вполне безопасная и простая вещь.
| |
|
|
1.14, Аноним (14), 16:55, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
> Some folks pointed out that in Rust (tokio) it can use a loop iterating over the Vec instead of join_all to avoid the resize to the list introduced by join_all. So I added a new test case Rust (tokio-for) here
Как всегда с Растом: если просто использовать API как обычно, без тайного знания, всё будет неоптимально
| |
|
|
3.368, Вова (?), 21:39, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Чушь не пиши! Если задача решена "в лоб" (очевидными классами) и она тормозит, значит разрабы ПЛОХО работали над оптимизацией. Для того ЯОНы и придумали, чтобы НИКОГДА не лезть "под капот" и что-то там химичить с битами/указателями ради выжимания герц.
| |
|
2.64, Аноним (62), 17:57, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
> Как всегда с Растом: если просто использовать API как обычно, без тайного знания, всё будет неоптимально
То ли дело сишка или плюсы с их стандартными либами, да?
| |
|
|
2.61, Аноним (53), 17:53, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +8 +/– |
> Як так, почему пихон жрёт меньше гошечки?
Ползает медленно, энергии много тратить не надо. Сожрал себе что-нибудь и переваривает неделю. А у go вы видели логотип? Он и носится в своем колесе до упаду, жрать хочет чаще.
| |
2.82, Аноним (82), 18:44, 29/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +8 +/– |
потому что в приведенном бенчмарке питон создает пустые коллбэки на однопоточном эвентлупе (тоесть внутри питоно-тасок нельзя вызывать ничего вычистительно тяжелого\блокирующего, это просто стейт-машина)
а в гошечке куда более мощных рантайм, который все эти проблемы решает
и горутины могут и вычислять и блокировать, а рантайм их по ядрам процессора распределяет
полноценные грин-треды
некорректно так сравнивать
| |
|
3.388, Карлос Сношайтилис (ok), 23:28, 02/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Так тут на всех языках пустые колбэки, которые ничего не делают.
Этот тест меряет память.
У гошки большие проблемы при создании множества горутин, она на это не рассчитана.
| |
|
|
|
|
3.151, Аноним (-), 20:16, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
ну, все свои классы и эррейры основные через плюсы компилить и в пхп-экстеншн_со класть - так проще и, возможно, производительней. у меня прод не паблик многоК+, однозначно сказать не могу.
| |
|
|
1.59, аНОНИМ (?), 17:51, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +5 +/– |
То есть это не про процессы и даже не про OS-треды, а про какие-то у каждой пепяки собственные симулякры. Значимость=0
| |
|
2.76, Аноним (-), 18:33, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
Если ты кликнешь на ссылку на прошлогодний тест, то там тестируются и ядерные треды, но результаты для них показаны только для 10k задач, а для 100k уже написано "I could not launch 100,000 threads on my system, so the threads benchmarks had to be excluded. Probably this could be somehow tweaked byt changing system settings, but after trying for an hour I gave up."
Я не знаю, сколько там современный десктоп вытянет ядерных тасков, но давным-давно, ещё на кор2дуо, я игрался с форк-бомбой (мне было очень интересно, можно ли анти-форк-бомбу подорвать рядом с форк-бомбой, чтобы вторая потушила бы первую), и нну я скажу это такие тормоза системы...
| |
|
1.75, Аноним (82), 18:32, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +4 +/– |
Автор не понимает как устроен tokio-runtime и как им пользоваться
Автор создал мильен футур, которые ничего не весят и не делают, по-сути мильен пустых коллбэков (только ждут события таймера от epoll\etc)
по-дефолту в tokio сейчас включен multi_threaded_runtime, и, чтобы использовать который, простых футур недостаточно, а нужно использовать специальный апи task::block_in_place
https://docs.rs/tokio/latest/tokio/task/index.html#block_in_place
чтобы на честных условиях сравниваться с Java VirtualThreads и с горутинами Golang
| |
|
2.114, chdlb (?), 19:12, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
неа, виртуальные потоки в джава это не реальные потоки, так что хоть это не одно и тоже, то что ты пишешь не будет реальным соотвествим
читай что я ниже пишу про Java и С#
не понимаю кто притянул сюда этот говнотест
| |
2.157, morphe (?), 20:42, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +4 +/– |
> нужно использовать специальный апи task::block_in_place
Кому нужно? Замени таймер на сеть - и вот у тебя обрабатывается сеть, без всяких block_in_place, а именно что через ожидания событий от epoll.
Тут сравниваются стеклес корутины (Rust/C#), которые потребляют ровно столько памяти сколько им нужно, и не байтом больше, и стекфул корутины (зелёные потоки/горутины/VirtualThread), которые резервируют под каждую свой виртуальный стек
И разумеется стеклес в C#/Rust выходят дешевле чем зелёные потоки, и разницы тут не будет между таймером/сетью/прочим работающим через epoll
| |
|
|
|
3.166, Аноним (78), 21:32, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
>тащить его в нагруженный прод
Ты будешь удивлен, но питон именно в проде в дохерище крупнейших проектах. Погуглить за тебя?
| |
|
4.222, Аноним (-), 04:30, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Ты будешь удивлен, но питон именно в проде в дохерище крупнейших проектах.
> Погуглить за тебя?
Зачем?! Достаточно сказать что гугл сделал го - для замены у себя в проде питона :). Это все что надо знать о использовании питона в проде и его производительности.
| |
|
|
6.325, Аноним (-), 19:59, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Зачем это (замена питона на го) гуглу понятно, с их нагрузками. Зачем
> это остальным - не понятно.
Затем что у них денег (на сервера и проч) - еще меньше чем у гугеля. Вон там тушка с VPSкой отписал как оно. Первое же минимальное нашествие ботов, да даже чуть ли не активировавшиеся к ночи краулеры - положит сервак на лопатки с такой нагрузочной способностью.
Да и фреймворки на питоне - ужасные и все сложно и криво. Так что в вебе питон по сути вымер, и игогошка его там пылающим мечом просто косит. Все знакомые пыхпшники и питонисты на это в вебе свалили.
| |
|
|
|
3.169, Аноним (169), 21:53, 29/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Проблема не в самом питоне, и даже не в том, что он интерпретируемый. Если хотите понять, почему дефлотные библиотеки (и подавляющее большинство того, что пишут вокруг них, потому что одни и те же примитивы использую) - говно, посмотрите, что cpython делает, когда вы, хз, строки пополам пилите, или делаете ещё какие-то операции, которые не меняют память, а только меняют начало и конец объекта, который ДОЛЖЕН БЫЛ БЫТЬ просто двумя указателями. При этом некоторые методы объектов ВНЕЗАПНО работают эффективнее, хотя выглядит это как полный бред (гуглите сравнение скорости слайсинга bytearray через [1:] и del [0])
| |
|
4.240, Аноним (240), 08:25, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Проблема что в реальной жизни и реальных веб задачах производительность языка не имеет значения потому что упираешься в производительность базы данных, а не кода. Даже на пхп. Все эти задачи вычисления пи на скорость имеют мало отношения к реальной жизни. Причем никто не пишет бенс на каком языке лучше всего написать базу данных. Там итак все без тестов понятно. И языка на котором написаны все нормальные базы данных в сабже например вообще нет.
| |
|
5.250, Прохожий (??), 10:13, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>нормальные базы
Их нормальность часто заключается только в богатстве функциональности, а не в стабильности работы. То есть, это ограниченное понимание.
| |
|
6.268, Аноним (268), 10:49, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ну раз тебе функционал не нужен пиши данные своего Фейсбука в редис и скидывай на диск. Рано или поздно все равно наступит предел производительности.
| |
|
7.305, Прохожий (??), 14:49, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Где я сказал, что функциональность не нужна? Я просто заметил об ограниченности понимания этого термина предыдущим высказывающимся.
| |
|
|
|
|
|
|
|
2.111, chdlb (?), 19:10, 29/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
этот тест кал читай ниже
а в джаве виртуальные потоки фиг пойми сколько будут создавать реальных потоков в ОС
| |
|
1.96, chdlb (?), 18:59, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
Я может чего-то не понимаю, но вот это:
int numTasks = int.Parse(args[0]);
List<Task> tasks = new List<Task>();
for (int i = 0; i < numTasks; i++)
{
tasks.Add(Task.Delay(TimeSpan.FromSeconds(10)));
}
await Task.WhenAll(tasks);
вызовется на ThreadPool, а у него есть максимальный размер, что-то не вижу я кода увеличивающий пул
притом Task.Delay ничего не делает, только асинхронно ждет НЕ БЛОКИРУЯ поток, правильнее было бы запустить Thread.Sleep, но в других языках похожи подходы, например Rust тоже не блокирует поток, но даже если тесты эквивалентны, то что они тестируют? производительность DFSM для тасков? бред
кстати здесь нет capcacity для листа, т.е. они плюсуют время на релокейшен внутреннего массива для листа (4,8,16,32) и тд, это же лютая дичь, плюньте в морду тем кто писал такие тесты
смотрите, я поменял код на такой чтобы подтвердить свои изыскания
for (int i = 0; i < numTasks; i++)
{
tasks.Add(Task.Run(() => {
Console.WriteLine(ThreadPool.ThreadCount);
}));
}
Output:
4
4
5
5
16
16
16
6
16
7
16
8
16
9
16
16
16
16
16
10
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
он уперся в 16 ядер которые у меня есть и точка
| |
|
2.178, Аноним (-), 22:40, 29/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
Лол, так ThreadPool.ThreadCount это же количество ядерных потоков в пуле, так? Их *естественно* будет столько сколько ядер или может чуть больше чем ядер. Нет никакого смысла увеличивать дальше, даже более того есть огромный смысл не увеличивать, чтобы снизить нагрузку на ядерный шедулер, который со всеми его расчётами приоритетов и переключением между kernel и user spaces только процессорные такты жрёт.
Так что у меня есть уверенный ответ на:
> Я может чего-то не понимаю
Да, ты вообще ничего не понимаешь. Несёшь какую-то чушь, пытаясь увидеть миллион ядерных тредов там, где речь про миллион асинхронных тасков, выполненных гринтредами.
| |
2.331, Аноним (331), 20:56, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Ты немного путаешься в понимании. Task.Delay как раз используется, чтобы показать, как система обрабатывает большое количество асинхронных операций без блокировки потоков. Это тестирование способности управления задачами, а не ThreadPool. Thread.Sleep тут вообще неуместен, потому что он блокирует поток, ломая саму идею асинхронности. Лимит в 16 потоков связан с количеством ядер, но к тесту он не имеет прямого отношения — тест про управление задачами, а не про пределы ThreadPool.
| |
|
1.160, Аноним (160), 21:00, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +1 +/– |
Ну-ну очередное сравнение мягкого, пушистого и розового? Запустили бы хотя бы что-нить посчитать в этих задачах, даже 2+2 и то было был бы маленький, но смысл, а так вообще дурoсть, для любителей обсасывать дурoсти.
| |
|
|
3.255, Прохожий (??), 10:22, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
>С расчётами туго, потому что они по-сути блокирующие операции
Это зависит от того, как многозадачность реализована. Если она кооперативная (потоку даётся квант времени на работу, потом переходим к следующему потоку), ничего там блокироваться не будет.
| |
|
4.279, Аноним (-), 12:16, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
> Если она кооперативная (потоку даётся квант времени на работу, потом переходим к следующему потоку)
Если потоку даётся квант времени и рантайм/ядро отнимает управление у потока по истечении этого кванта, то это вытесняющая многозадачность (поток вытесняется). Кооперативная, это когда поток кооперирует с рантаймом и другими потоками и сам отдаёт управление. В асинхронных рантаймах используется именно кооперативная многозадачность, потому что с ней меньше накладных расходов на организацию всего этого хозяйства. А это значит, что если гринтред сделает while(1);, то весь рантайм встанет колом без какой-либо возможности продолжить работу.
| |
|
5.298, Прохожий (??), 14:12, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Определение термина кооперативной (вытесняющей по-вашему) многозадачности я взял из одной статьи про асинхронщину в Rust. Собственно, не в термине суть. Кажется в Го или Свифт такое было реализовано. В смысле такой планировщик потоков (корутин). Но я не специалист по этим языкам. Пересказываю то, что прочитал. А так - да, вы правы. В том же Питоне асинхронная функция станет колом, если начнёт что-то вычислять.
| |
|
6.326, Диды (ok), 20:07, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Определение термина кооперативной (вытесняющей по-вашему) многозадачности я взял из одной статьи про асинхронщину в Rust
Пропал дом (с)
| |
|
|
|
|
2.233, Аноним (206), 07:35, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Зачем создавать пул потоков, что за странная идея? Пусть ядро занимается тем, что оно хорошо умеет: управляет потоками.
| |
|
1.162, Легивон (?), 21:15, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
Го приятно порадовал. На практически осмысленном количестве рутин (тысячи) он второй. Обходит его только ненужная ржавчина.
Хорошо сделали!
| |
|
2.224, Аноним (-), 04:32, 30/11/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –2 +/– |
> Го приятно порадовал. На практически осмысленном количестве рутин (тысячи) он второй. Обходит
> его только ненужная ржавчина.
> Хорошо сделали!
Ржавчина настолько ненужная - что успешно выпилила го с серверов Dropbox'а, на минуточку :)
| |
|
3.235, Легивон (?), 07:51, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Что такое Dropbox? Это какой-то проприетарный Saas сторадж для файлов из 90х? Чем это лучше self-hosted или пускай даже public cloud s3?
Почему мнение проприетарщиков должно быть важно?
| |
|
4.262, Прохожий (??), 10:33, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Чем это лучше self-hosted или пускай даже public cloud s3?
Тем, что людей, собирающих свои собственные велосипеды, гораздо меньше в мире, чем людей, покупающих готовые. Про специализацию и разделение труда слышали когда-нибудь? Вот это оно.
| |
4.345, Аноним (-), 05:20, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Что такое Dropbox? Это какой-то проприетарный Saas сторадж для файлов из 90х?
Это пример довольно нагруженного вебсервиса для вываливания филезов. Они сначала накорябали на питоне. Вскоре они заметили что с "докупите серверов" есть какая-то подстава. И переписали на go. А потом и на хрусте как раз. По все тем же причинам.
> Чем это лучше self-hosted или пускай даже public cloud s3?
> Почему мнение проприетарщиков должно быть важно?
Как пример эволюции нагруженного сервиса - сойдет. А у майкрософта есть не менее забавные вакансии - заменить дотнетчиков на хруст на бэке онлайнового офиса. Так что на тему ненужности с вами не согласится сразу несколько жирных котов.
| |
|
|
2.259, Читатель разных статей про Golang (?), 10:29, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –2 +/– |
Всё-таки среди двух названных языков более ненужный - это Го: убогие абстракции, убогая система типов, убогая обработка ошибок, убогая интероперабельность с другими языками программирования, убогая кросс-платформенность (кривой API по работе с файлами для Windows, например), непредсказуемая мутабельность переменных внутри функций. И в довершение ко всему сказанному - GC.
Кажущаяся простота Го обманчива.
| |
|
1.176, Аноним (176), 22:32, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +7 +/– |
если вы столкнулись с необходимостью создать миллион горутин то надо выпит таблеточку и лечь спать а утром подумать о смене работы
| |
1.184, Аноним (185), 23:34, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
>при выполнении кода, создающего миллион параллельно выполняемых сопрограмм
Ну а на более низком уровне это как выглядит: fork(2), clone(2) ?
| |
|
2.216, Аноним (-), 04:24, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Ну а на более низком уровне это как выглядит: fork(2), clone(2) ?
Погуглите что такое корутины. До fork или clone они не имеют никакого отношения.
| |
2.225, Аноним (-), 04:34, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>>при выполнении кода, создающего миллион параллельно выполняемых сопрограмм
> Ну а на более низком уровне это как выглядит: fork(2), clone(2) ?
Корутины могут и свой тред шедулить. А запуск полноценного треда в Linux - ну да, clone() с определенными флагами. Собссно тред, процесс и контейнер отличаются в основном флагами и что там у них unshare()'d как таковое. У треда почти все общее, самая легкая конструкция. В процессе unshared больше, а в контейнере - еще больше.
| |
2.281, Аноним (281), 12:24, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Корутины вошли в моду, когда выяснилось, что fork и clone — слишком тяжелы и несут слишком много накладных расходов, как по памяти, так и по вычислительным ресурсам.
Это C10M Problem — задача из мира серверов и обработки гигантского количества одновременно приходящих соединений.
https://ru.wikipedia.org/wiki/C10k
Только в той реализации, в которой оно представлено в данном бенчмарке, это не показывает ровным счётом ничего.
| |
|
1.209, Аноним (206), 04:00, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +1 +/– |
Какие вообще отношение к многозадачности имеет язык программирования?
Нельзя создать задачу иначе чем через системный вызов.
| |
|
2.226, Аноним (-), 04:37, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Какие вообще отношение к многозадачности имеет язык программирования?
> Нельзя создать задачу иначе чем через системный вызов.
Вообще-то корутины это как раз пример создания задач без системных вызовов, на минуточку. Оказывается шедулить задачи можно и в пределех своего треда(ов). Ну вот такой вложенный шедулинг, ничему не противоречит.
Есть всякие граничные вещи - скажем threads.
| |
|
3.228, Аноним (206), 06:18, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Шедулить можно сколько угодно, но ваши задачи не будут параллельно выполняться, значит толку от них никакого нет.
| |
|
4.263, Прохожий (??), 10:38, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Толк всё-таки есть, если мы говорим про такие задачи, которые могут какое-то время ожидать операций ввода-вывода. Почитайте про асинхронщину на досуге.
| |
|
5.346, Аноним (206), 06:43, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Магии не существует. Параллельный ввод-вывод это не магические операции, а точно такие же инструкции cpu, которые читают байты из одной памяти и перекладывают в другую.
Если ввода не ждёт программа, значит его ждёт ядро. Вы можете использовать "асинхронный ввод и вывод" (который был стандартизирован в posix 2001, 23 года назад), (https://linux.die.net/man/7/aio), но по сути это то же самое, что "сделать поток и заставить его подождать".
| |
|
|
|
|
1.231, голос_из_леса (ok), 06:58, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –3 +/– |
Все логично. Победили тесты где в качестве функции использовались функции стандартной библиотеки. Где сами создавали функцию, там и память откушали.
Автору теста жирную двойку.
| |
|
2.237, Аноним (240), 08:04, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Это каждому понятно что в этом тесте победили те, кого хотели выбрать победителем теста создатели теста. Вплоть до того что невозможно проверить проводился ли тест в реальности или нет и с какими настройками.
| |
|
|
|
3.299, Прохожий (??), 14:23, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Современному веб рабу
В Rust можно неиспользовать рантайм при желании. То есть, программисту предоставлен выбор.
Про абстракции, которые никому не нужны. Именно поэтому программисты на Си изобретают хеш-мап в своём коде из проекта в проект. Да?
| |
|
4.312, Аноним (245), 17:49, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Сам ты раб.
В расте хеш-мап при работе не занимает память и не задействует такты процессора, а работает исключительно на тайной магии. Да?
| |
|
5.357, Прохожий (??), 14:18, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Сам ты раб.
Я отвечал человеку, который сам себя назвал "Современный веб раб". Его сообщение сначала заблокировал, а потом удалил модератор. Никого оскорблять не хотел.
>В расте хеш-мап при работе не занимает память и не задействует такты процессора, а работает исключительно на тайной магии. Да?
Причём здесь это? Речь шла о " ненужных абстракция". Оказывается, они нужны. Но в одних языках их реализация стоит гораздо дороже, чем в других.
| |
|
|
|
|
1.243, Илья (??), 08:49, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +2 +/– |
int numTasks = int.Parse(args[0]);
List<Task> tasks = new List<Task>();
for (int i = 0; i < numTasks; i++)
{
tasks.Add(Task.Delay(TimeSpan.FromSeconds(10)));
}
await Task.WhenAll(tasks);
На сишарпе надо было использовать ValueTask - тогда бы память практически не выделялась.
Плюс, надо было указать изначальный размер листа - тогда бы удвоения размера листа не происходило - и по памяти еще можно сэкономить было
Таким образом, c# работал бы со скоростью раста
| |
|
2.286, Нуну (?), 13:09, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
при ValueTask память не выделяется в куче отдельно для этого экземпляра ValueTask, но память он все равно занимает и будет она заниматься в куче внутри List
А вот Task.WhenAll создает дополнительный массив для себя.
| |
|
3.370, Вова (?), 21:51, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Зачем WhenAll'у создавать ЕЩЁ массив, если ему и так передали массив?! Он просто будет по нему бегать, пока все задачи не завершатся.
| |
|
4.375, Нуну (?), 03:43, 02/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
аргумент принимается. они в итоге убрали создание защитного массива вроде в дотнет 8, а так как в тесте дотнет, в котором это есть, то я признаю что мое замечание в этом аспекте лишается силы
| |
|
|
|
1.244, Илья (??), 08:52, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
Про питон - враньё. Скорее всего под результат подогнали. При реальной нагрузке производительность примерно в 10-50 раз падает.
| |
|
2.329, Аноним (-), 20:22, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Про питон - враньё. Скорее всего под результат подогнали. При реальной нагрузке
> производительность примерно в 10-50 раз падает.
Да просто обычный синтетический бенч, они все такие.
| |
|
1.247, Аноним (247), 09:47, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
> для типовой программы, реализованной на языках программирования
Читаю все эти опусы и задаю вопрос, а какая разница, на каком высокоуровневом языке исходники?
| |
|
2.267, Прохожий (??), 10:46, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Разница такая, что высокий уровень (абстракции) в том или ином языке обеспечивается разными способами. Например, в Rust такие абстракции бесплатные. А в том же Питоне - нет. Как и в Го, Джаве.
| |
|
|
4.300, Прохожий (??), 14:27, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Гугл в Андроиде. Амазон в инфраструктуре. Клаудфлэр в прокси. Дропбокс, Дискорд в своих програмах. Мозилла в браузере. Эти все - никто?
| |
|
3.288, Вы забыли заполнить поле Name (?), 13:10, 30/11/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
> Например, в Rust такие абстракции бесплатные. А в том же Питоне - нет. Как и в Го, Джаве.
Что такое бесплатная абстракция? Корутина — это абстракция? Да. Бесплатная с точки зрения ресурсов? Нет. От языка не зависит.
| |
|
4.301, Прохожий (??), 14:32, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Бесплатная с точки зрения ресурсов? Нет. От языка не зависит.
Зависит, конечно. Корутины в Го более дорогие, чем асинхронщина в Раст, читал. Бесплатная абстракция - это такая абстракция, которая кроме своего собственного кода не требует каких-то дополнительных ресурсов для своей реализации. Например, выделение памяти в куче вместо использования памяти в стеке. И так далее.
Если интересно, могу поискать статью на эту тему про асинхронщину в Раст.
| |
4.330, Аноним (-), 20:23, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> Например, в Rust такие абстракции бесплатные. А в том же Питоне - нет. Как и в Го, Джаве.
> Что такое бесплатная абстракция? Корутина — это абстракция? Да. Бесплатная с точки
> зрения ресурсов? Нет. От языка не зависит.
Как показал этот пример, таки - от языка, походу зависит. И от реализации. Это так странно?
| |
4.391, Карлос Сношайтилис (ok), 08:18, 03/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Никакая модель не бесплатная, очевидно, но реализация зависит от языка.
Есть несколько моделей асинхронщины. Можно разбить на две группы: stateless и statefull. В го они стэйфул, в расте стэйтлес.
Горутины в го, это почти треды, но на уровне рантайма, а не ОС, с динамическим стэком и прочими накладными расходами. Отлично работают, когда их мало. Но при большом кол-ве все плохо.
В расте таски это просто ленивые структуры в памяти, как ёжики, пока не пнёшь – не полетят. Это конечные автоматы, переходят из одного состояния в другое (в точках await).
| |
|
5.394, Вы забыли заполнить поле Name (?), 19:53, 03/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Никакая модель не бесплатная, очевидно, но реализация зависит от языка.
> Есть несколько моделей асинхронщины. Можно разбить на две группы: stateless и statefull.
> В го они стэйфул, в расте стэйтлес.
> Горутины в го, это почти треды, но на уровне рантайма, а не
> ОС, с динамическим стэком и прочими накладными расходами. Отлично работают, когда
> их мало. Но при большом кол-ве все плохо.
> В расте таски это просто ленивые структуры в памяти, как ёжики, пока
> не пнёшь – не полетят. Это конечные автоматы, переходят из одного
> состояния в другое (в точках await).
Этот ответ ближе к телу в отличие от фанбойства Прохожего, где в расте у него все басплатно!)
| |
|
|
|
|
|
2.287, Аноним (268), 13:10, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Посмотри на автора бенчмарка. Это какой-то недоучившийся студент. Непонятно зачем мы его тут вообще обсуждаем.
| |
|
1.296, Liin (ok), 13:39, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +1 +/– |
К сожалению, все эти синтетические тесты имеют крайне мало отношения к реальности. В реальной жизни код куда сложнее, а средний разработчик довольно мало знает/помнит об оптимальной конструкции с точки зрения производительности. Вот если бы сравнили реальный код, написанный средними разрабами - это было бы интересно, хоть и с претензиями на объективность.
| |
|
2.303, Прохожий (??), 14:42, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>а средний разработчик довольно мало знает/помнит об оптимальной конструкции с точки зрения производительности
У нас, например, чтобы средний разработчик об этом не забывал, прямо в договоре с клиентом прописывается гарантированное время реакции программы на действия пользователя.
Код средних разработчиков никому не интересен. Потому что они, во-первых, средние. А во-вторых, как вы заметили, часто о чем-то забывают.
Ну и напоследок. Безотносительно качества разработчика. Код на Питоне всегда будет более медленным, чем код на Си, Раст и других подобных языках.
| |
|
3.307, Liin (ok), 15:04, 30/11/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Код на Питоне всегда будет более медленным, чем код на Си, Раст и других подобных языках.
Кэп, ты? Вы думаете, это откровение для кого-то? Вопрос же не в том, что медленнее, а насколько медленнее.
| |
|
4.358, Прохожий (??), 14:28, 01/12/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Вы думаете, это откровение для кого-то?
Думаю, да. Для многих "экспертов" данного сайта. Сужу исключительно на основе своего многолетнего опыта общения с ними.
>Вопрос же не в том, что медленнее, а насколько медленнее.
Если "средний" синоним слову "плохой", то и на Плюсах можно написать такой код по незнанию, который окажется медленнее кода на Питоне. Но почему это должно быть кому-то интересно? Предполагается же, что со временем квалификация растёт и человек перестаёт наступать на те грабли, на которые наступал ранее по молодости.
| |
|
|
|
1.313, Аноним (313), 17:49, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
А вы не задумывались что возможно golang действительно готов все это параллельно обрабатывать? Другой вопрос что все одно столько тредов процесса нет, а значит и полноценных горутин зачем столько. И это влпрос к golang. Однако вче равно хотелось бы не только графики потребления памяти, но и графики скорости выполнения всех этих задач, а то может оказаться что на деле остальные то в один поток делать будут миллиард лет
| |
1.398, uis (??), 13:12, 05/12/2024 [ответить] [﹢﹢﹢] [ · · · ] [к модератору]
| +/– |
Как говорят в LKML,
>2) the fastest model: is a pure, minimal state-machine tailored to the task/workload we want to do. | |
|