The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Оценка потребления памяти при одновременном запуске миллиона задач

29.11.2024 16:52

Опубликованы результаты тестирования потребления памяти при выполнении кода, создающего миллион параллельно выполняемых сопрограмм. Тестирование проведено для типовой программы, реализованной на языках программирования Rust, C#, Go, Java, Python и JavaScript.

В Rust задачи создавались с использованием фреймворка Tokio и на базе библиотеки async_std, в C# - API List<Task>(), JavaScript - async/await в Node.js, Python - asyncio, Go - goroutine, Java - сопрограммы. Используемые версии и конфигурация: Rust 1.82, .NET 9.0.100 с NativeAOT, Go 1.23.3, OpenJDK/GraalVM 23.0.1, NodeJS 23.2.0, Python 3.13.0.

Результаты:

  • Запуск одной задачи для оценки потребления памяти в runtime.

  • Запуск 10 тысяч задач.

  • Запуск 100 тысяч задач.

  • Запуск миллиона задач. Высокое потребление памяти в Go при похождении теста объясняется лишним использованием ключевого слова "defer", приводящим к выделению дополнительной памяти.

  • Похожий прошлогодний тест с запуском миллиона задач, проведённый автором Spark Cassandra Connector и одним из разработчиков распределённой СУБД DataStax Enterprise (на базе Apache Cassandra).



 
  1. Главная ссылка к новости (https://hez2010.github.io/asyn...)
  2. OpenNews: Опубликованы тесты простейших приложений на различных языках программирования
  3. OpenNews: Сравнение эффективности 20 языков программирования
  4. OpenNews: Оценка популярности открытых лицензий в зависимости от языка программирования
  5. OpenNews: Проект по тестированию эффективности языков программирования
  6. OpenNews: Сравнение производительности сетевого драйвера в вариантах на 10 языках программирования
Лицензия: CC BY 3.0
Наводку на новость прислал Artem S. Tashkinov
Короткая ссылка: https://opennet.ru/62314-lang
Ключевые слова: lang, benchmark, rust, dotnet, go, java, python, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (280) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ijuij (?), 16:42, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +36 +/
    А где C/C++? 🤬
     

     ....большая нить свёрнута, показать (48)

  • 1.3, Андрей (??), 16:45, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +16 +/
    Вот тебе и Go...
     
     
  • 2.77, Человек из глубинки (?), 18:35, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    То что у него GC кривой - это совсем не новость.
     
     
  • 3.360, Аноним (360), 17:44, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    А где лучше? Вы о чём.
     
  • 2.196, OpenEcho (?), 01:48, 30/11/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +2 +/
    > Вот тебе и Go...

    Абстрактный тест с нереальной задачей, и все, - разочарование... :)

    И вообще, приведенная Го программа этим тестировщиком, не должна компилироваться в принципе, так как содержит банальную ошибку.

    Люди забывают кажется уже в этой абстрактности, что есть банальное, реальное железо, в 4, 8..500 корок ЦПУ, но никак уж не 1М, даже с сетевыми задачами, где приходится ожидать, можно несколько тысяч на кор, можно даже несколько десятков тысяч если проц силен, но точно уж не миллион. Реальные задачи с одним миллионом конкурентности - это чушь, если конечно они не спешат дождаться выполнения. Такие задачи выполняются в очередях, учитывая реальное количество процессоров

     
     
  • 3.260, Аноним (-), 10:29, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    А здесь, что думаешь под капотом Там есть сет ожидающих задач, которым абсолютн... большой текст свёрнут, показать
     
     
  • 4.292, OpenEcho (?), 13:22, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    И где это там ты очередь разглядел В банальном цикле запускается в парал... большой текст свёрнут, показать
     
     
  • 5.314, Аноним (-), 17:49, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    А как по-твоему рантайм шедулит таски Рантайм делает именно то, о чём ты говори... большой текст свёрнут, показать
     
     
  • 6.342, OpenEcho (?), 04:11, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    >> И где это там ты очередь разглядел ?
    > А как по-твоему рантайм шедулит таски? Рантайм делает именно то, о чём
    > ты говоришь, берёт таски, готовые выполняться и складывает о очередь.

    О чем ты, человек ?

    Посмотри еще раз на исходный код программы ! где ты там шедулеры разглядел?

    На код смотри, а не на то, как оно там под капотом и как оно тебе кажется

     
     
  • 7.354, Прохожий (??), 13:58, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    >Посмотри еще раз на исходный код программы ! где ты там шедулеры разглядел?
    >На код смотри, а не на то, как оно там под капотом и как оно тебе кажется

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

     
     
  • 8.359, OpenEcho (?), 16:28, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    В код смотрите, специалисты Вы в натуре не в той области тусуетесь, если думае... текст свёрнут, показать
     
     
  • 9.364, Аноним (-), 18:10, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ключевое слово если Нет, мы не думаем, что рантаймы и фреймворки за нас будут... текст свёрнут, показать
     
     
  • 10.383, OpenEcho (?), 13:30, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Вот именно что ключевое Смотрят в код из 10 строк, в котором на уровне языка не... большой текст свёрнут, показать
     
  • 5.362, Аноним (360), 17:46, 01/12/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Абсолютно согласен.

    Совершенно синтетический тест: как будто никто не знал что горутины жрут много памяти из-за стека, вот это сюрприз. Такие ситуации разруливаются просто по-другому: https://github.com/valyala/fasthttp/tree/master/stackless

     
     
  • 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 всё получилось.
     

  • 1.5, Пью чай и греюсь пледом (?), 16:45, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +8 +/
    В целом шарп неплохой коспромис по производительности, удобству и кроссплатформенности.
     
     
  • 2.13, ijuij (?), 16:54, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +7 +/
    Вы пробовали использовать его на Debian/Ubuntu/Arch Linux? Каковы ваши впечатления?

     
     
  • 3.18, Аноним (18), 16:57, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Я не программист всех языков, в отличии от остальных комментаторов, но мои хеллоуворлды работали исправно :-)
     
  • 3.25, nume (ok), 17:06, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +6 +/
    Использую, проблем нет
     
  • 3.38, Аноним (38), 17:20, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Говорят, на .нет 9.х неплоха
     
  • 3.161, _kp (ok), 21:01, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +2 +/
    Да. В Wine никаких проблем.

    Зачем так? Если разработчик, и можешь собрать как угодно?
    Да возникла проблема с библиотекой, с открытой, и кроссплатформенной, которая нативная для Linux имела проблемы.
    А надо сдавать, а не в чужом и большом коде копаться. Ну сделали через Wine. Временно.
    А потом подумали, и нафига версии для Linux и Windows делать, если в Wine все отлично.
    И тут с c# все проблемы как рукой сняло. ;)

     
     
  • 4.271, Илья (??), 11:00, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > Да. В Wine никаких проблем.

    Но зачем, если дотнет сейчас полностью кроссплатформенный?

     
     
  • 5.320, Аноним (-), 19:49, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >> Да. В Wine никаких проблем.
    > Но зачем, если дотнет сейчас полностью кроссплатформенный?

    Вот прямо полностью? И можно написать 1 графическую прогу на винду, линух и мак и это даже работать будет? Или у вас как обычно у майрософт - звездочки пятым шрифтом, с множествлм уточнений и подлянок?

     
     
  • 6.336, Аноним (-), 00:32, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Есть AvaloniaUI и бинды на тулкиты типа gtk. Но официально, first-party как говорится, ничего, да.
     
  • 6.350, Илья (??), 11:41, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > И можно написать 1 графическую прогу на винду, линух и мак и это даже работать будет?

    Avalonia. Или можно вообще ксамарин попробовать, тогда ещё и с мобилками общий гуй будет

     
  • 5.365, _kp (ok), 20:54, 01/12/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >> Да. В Wine никаких проблем.
    > Но зачем, если дотнет сейчас полностью кроссплатформенный?

    Я ж написал. Если нативная библиотека с багом, уже кроспатформенность остального не важна. Просто до следующего крупного обновления, просто так переделывать никто не станет, и тем более за даром.
    А с Wine можно много что перетащить, ибо свое ПО подправить быстрее, чтоб в Wine было хорошо, чем переписать, не все же на дотнет переписано.

     
  • 4.378, Прохожий (??), 07:48, 02/12/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Случаем не в 1С работаете?
     
     
  • 5.380, _kp (ok), 09:45, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Случаем не в 1С работаете?

    Никогда! ;)

     
  • 5.384, AleksK (ok), 15:53, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ты там все ещё на 7.7 колупаешься? 1С с 2012 года имеет нативный клиент на линукс, а сервер и того раньше.
     
  • 3.163, Аноним (163), 21:22, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Использую в арче, все устраивает. Только скорость появления новых версий в репозиториях так себе
     
  • 3.200, мяв (?), 03:38, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    да.
    mono хорошо работает. правда, в девуане были какие-то непонятки с GAC, из-за чего он не работал в 11й версии.
    сейчас все норм.
    больше скажу, даже под freebsd все хорошо.
     
     
  • 4.273, Илья (??), 11:03, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    > mono хорошо работает

    Пацаны, вы из какой криокамеры? Дотнет максимально кроссплатформенный и устанавливается в 2-3 команды на любую ОС. Моно давно в историю должен уйти

     
     
  • 5.283, Ан (??), 12:35, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Любитель телеметрии?
     
  • 5.304, мяв (?), 14:49, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    >вы из какой криокамеры?

    Вы под какими спидами?
    новость о переходе разработок в dotnet/runtime была где-то в середине лета, если не под его конец.
    в дебиане и рхел'е все так же mono.

     
     
  • 6.319, Аноним (-), 19:47, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Вы под какими спидами?

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

    > новость о переходе разработок в dotnet/runtime была где-то в середине лета, если
    > не под его конец.
    > в дебиане и рхел'е все так же mono.

    И гуя кроссплатформенного там нет даже в проекте. Но когда бесстыжих фанбоев MS пишущих о кроссплатформе из маздайки такое смущало? А потом эти люди почему-то удивляются что в Linux их таких - в гробу видали, и программ на этом полторы штуки за все время существования этой хтони.

     
     
  • 7.338, мяв (?), 02:17, 01/12/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    так-то, есть GTK#, полноценная мультиплатформа:
    https://www.mono-project.com/docs/gui/gtksharp/
    и даже смотрится хорошо:

    https://monodevelop.com

    https://wiki.gnome.org/Apps(2f)Tomboy.html

    но пока только GTK3, к сожалению.

     
     
  • 8.343, Аноним (-), 05:08, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Полноценно - по какому критерию Ни 1 программы на этом для винды - я не видел ... большой текст свёрнут, показать
     
  • 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"

    >Фанбои майкрософта - не лучше чем сам майкрософт, тоже врут с три короба на каждом углу.

    хейтеры - тоже не ахти.

     
     
  • 7.344, Аноним (-), 05:14, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Но штатно майкрософт почему-то сватает совсем не это Хотя кому-то и гражданин... большой текст свёрнут, показать
     
     
  • 8.352, Илья (??), 11:53, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Можно подробнее Устанавливаешь VS Code запускаешь скрипт, который тебе доставл... текст свёрнут, показать
     
  • 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.65, Аноним (65), 17:58, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    А джава по памяти. Посмеялся, спасибо.
     
  • 2.140, Анон1110м (?), 19:47, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Может всё таки не C# а .NET?
     

  • 1.7, Аноним (7), 16:49, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +2 +/
    Результаты Go поражают 🤦‍♂️
     
     
  • 2.16, ijuij (?), 16:56, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Это вполне ожидаемо. Я применяю его для разработки MVP, а если продукт окажется успешным, то перепишу его на C++.

     
     
  • 3.36, Аноним (38), 17:19, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –3 +/
    А почему не раст?)
     
     
  • 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 прогеров.
    Для одного единственного, может и не сработать.
     
     
  • 7.297, Прохожий (??), 14:03, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >Для одного единственного, может и не сработать.

    Ну да, если это программист на Питоне.

     
  • 3.50, Вася Пупкин (?), 17:41, 29/11/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    Замени го на питон. И плюсы на раст. и тогда все будет правильно, быстрее, удобно и надежнее.
     
     
  • 4.60, Аноним (53), 17:51, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Замени го на питон.

    А чего все остальные в вебе - наоборот делают? А, вы наверное продаете серваки и недовольны падением продаж?! :)

    > И плюсы на раст. и тогда все будет правильно, быстрее, удобно и надежнее.

    И заодно програмер через годик-другой сольется от постоянной гонки за скачайте ночнушку - и проект помрет. Зато можно будет продать еще серваков - уже новому лоху.

     
  • 4.182, Аноним (182), 23:14, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    А я пришёл к выводу что проще сразу писать на Rust Скорость разработки на нём н... большой текст свёрнут, показать
     
     
  • 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++

    ... и окажешься первым на планете, кто гошное приложение переписал на плюсы, а не просто докупил железа. Хотя, возможно, это потому, что окажешься первым, кто написал на го УСПЕШНЫЙ продукт...

     
  • 3.206, Аноним (206), 03:55, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >применяю его для разработки MVP,

    Почему не matlab?

     

  • 1.8, Пью чай и греюсь пледом (?), 16:49, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +5 +/
    Кстати, ноде вообще пофиг, она тут лидер по стабильности :-)
     
     
  • 2.168, th3m3 (ok), 21:48, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    Сливает даже Питону)
     
     
  • 3.323, Аноним (-), 19:53, 30/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.10, Аноним (-), 16:51, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –9 +/
    Java тормознутая. Легенда о тормознутости Жабы доказана. Что и требовалось доказать.
     
     
  • 2.22, Аноним (18), 17:00, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +2 +/
    Ты вообще читал новость? 🤦
     
     
  • 3.94, Аноним (90), 18:58, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Да он даже заголовок не осилил 😂
     
  • 2.37, Аноним (37), 17:19, 29/11/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    Ты различаешь скорость работы и жручесть памяти? По скорости ява вполне сравнима даже с компилируемыми в нативщину языками, а вот по жручести памяти полное днище. Это было основное, что мне в ней крайне не нравилось.
     
     
  • 3.88, Аноним (88), 18:55, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +2 +/
    Жручесть памяти в JVM это примерно как жручесть памяти в Линукс Новички тоже по... большой текст свёрнут, показать
     
     
  • 4.143, Анон1110м (?), 19:49, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Пользовался IDE на Java и по ощущениям — сплошные тормоза.
     
     
  • 5.324, Аноним (-), 19:55, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Пользовался IDE на Java и по ощущениям — сплошные тормоза.

    Да что там, Arduino - по уровню фич чуть лучше нотпада, ну ладно, может на уровне Mousepad какого-нибудь микроскопического. Но тормозит и лагает эта лабуда - как Qt Creator какой, только этот - мощный дредноут для разборки с проектами космического масштаба, а ардуино - так, блокнотик с прошивалкой.

     
     
  • 6.379, anon111 (?), 07:49, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Поставь 1.8. Тормоза добавили с 2.0.
     
     
  • 7.386, Карлос Сношайтилис (ok), 23:17, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Специально?
     
  • 3.254, microcoder (ok), 10:21, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > Ты различаешь скорость работы и жручесть памяти?

    Жручесть памяти = выделение памяти, а выделение памяти это процессорное время + время на GC, что является "лишними" вычислениями, а равно - ТОРМОЗНУТОСТИ. Эта простая формула.

     
  • 2.69, Аноним (65), 18:00, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Какие легенды? Это ещё деды в учебники по физике записали.
     

  • 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.48, анонимище (?), 17:40, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    а Руби чем вам не угодил?
     
     
  • 5.387, Карлос Сношайтилис (ok), 23:19, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Руби не смог занять нишу и находится в режиме заката.
     
  • 4.49, НяшМяш (ok), 17:41, 29/11/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • –4 +/
    Пакет ноды занимает 50-60 мегабайт в моём дистрибутиве после распаковки. Даже меньше, чем питон. Найти приложение на ноде с гигабайтами исходников надо ещё постараться. Да и есть кучи компилеров, транспилеров и бандлеров, чтобы это всё упаковать в компактный вид.
     
     
  • 5.145, Анон1110м (?), 19:51, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Это всё без разницы потому что ЯваСцэнарий один из худших языков на планете.
     
  • 5.177, fuggy (ok), 22:40, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Легко средний проект занимает 50-90К файлов. Всё это добро занимает 400-700МБ. И это только исходники. Ведь каждый пакет это однострочная функцию, к которой в комплекте source map, файл лицензии, readme, changelog, тесты, данные для тестов. И всё это только для одного пакета из одной функции. И таких пакетов тысячи.
     
  • 4.126, Аноним (124), 19:23, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Нет, не самый. Есть ещё Electron - это нода вместе с движком от Хромиума...
     
  • 4.242, Илья (??), 08:44, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Нода - самый отстой из всего. На втором месте руби.

    питон ужасен

     
  • 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.257, Аноним (265), 10:23, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вот это походу и называется дэпэндэнси хэл
     
  • 4.258, microcoder (ok), 10:27, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > Кто-то проверят, что в этих файлах понаписали? Нет, нет и нет.

    Кто-то Винду проверяет что там понаписано? А Линукс, где десятки тысяч пакетов от "васянов", кто это всё проверяет, каждую строчку, что там понаписано?

     
     
  • 5.335, Аноним (335), 00:24, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >Кто-то Винду проверяет что там понаписано?

    А как её проверишь? Не проверишь даже при остром желании.

     
     
  • 6.355, Прохожий (??), 14:06, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вообще-то код Винды можно получить для аудита. Но для этого надо иметь веские основания. Например, вы - госучреждение какое. Или работаете на правительство.
     
  • 4.295, Liin (ok), 13:36, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > Кто-то проверят, что в этих файлах понаписали? Нет, нет и нет.

    Конечно проверяют, случаи выпиливания троянов известны.

    А Вы думаете в других открытых проектах по-другому? Наивный Вы, конечно. Погуглите, к примеру, недавний случай с XZ backdoor.

     
  • 2.188, turbo2001 (ok), 00:06, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Сам тест у C# тоже любопытный, это тест миллиона таймеров, а не задач.
     
  • 2.201, мяв (?), 03:41, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    тоже хотела написать.
    и самое интересное, уровень портабельности идентичный, ибо оба на LLVM.
     
  • 2.227, Аноним (227), 04:40, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вот совсем не ожидал того что .NET выступит настолько достойно!
     
  • 2.232, Andrey (??), 07:19, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Но при желании в шарпе можно будет с ref поприседать.
     
     
  • 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 как обычно, без тайного знания, всё будет неоптимально

     
     
  • 2.31, Rev (ok), 17:14, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Это не тайные знания, это понимание базовой функциональности.
     
     
  • 3.368, Вова (?), 21:39, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Чушь не пиши! Если задача решена "в лоб" (очевидными классами) и она тормозит, значит разрабы ПЛОХО работали над оптимизацией. Для того ЯОНы и придумали, чтобы НИКОГДА не лезть "под капот" и что-то там химичить с битами/указателями ради выжимания герц.
     
  • 2.32, Аноним (32), 17:15, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –5 +/
    Rust (async_std) Стандартная библиотека
     
  • 2.64, Аноним (62), 17:57, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    > Как всегда с Растом: если просто использовать API как обычно, без тайного знания, всё будет неоптимально

    То ли дело сишка или плюсы с их стандартными либами, да?


     

  • 1.19, Ананий (?), 16:59, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Як так, почему пихон жрёт меньше гошечки?
     
     
  • 2.61, Аноним (53), 17:53, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +8 +/
    > Як так, почему пихон жрёт меньше гошечки?

    Ползает медленно, энергии много тратить не надо. Сожрал себе что-нибудь и переваривает неделю. А у go вы видели логотип? Он и носится в своем колесе до упаду, жрать хочет чаще.

     
     
  • 3.66, анонимище (?), 17:59, 29/11/2024 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 2.82, Аноним (82), 18:44, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +8 +/
    потому что в приведенном бенчмарке питон создает пустые коллбэки на однопоточном эвентлупе (тоесть внутри питоно-тасок нельзя вызывать ничего вычистительно тяжелого\блокирующего, это просто стейт-машина)

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

    некорректно так сравнивать

     
     
  • 3.388, Карлос Сношайтилис (ok), 23:28, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так тут на всех языках пустые колбэки, которые ничего не делают.

    Этот тест меряет память.

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

     

  • 1.23, Аноним (23), 17:04, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +5 +/
    >при одновременном запуске миллиона задач

    А что там по одновременному выполнению миллиона задач?

     
     
  • 2.39, Аноним (38), 17:24, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Вы про корутины начитались что ли?
     

  • 1.51, Дед Анон (?), 17:42, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    А где PHP? Хотелось бы посмотреть на фоне Go
     
     
  • 2.74, Anyone (?), 18:32, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    В РНР уже завезли сопрограммы без костылей?
     
     
  • 3.147, Аноним (-), 20:04, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    плюсы-расширения подойдут?
     
  • 3.151, Аноним (-), 20:16, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    ну, все свои классы и эррейры основные через плюсы компилить и в пхп-экстеншн_со класть - так проще и, возможно, производительней. у меня прод не паблик многоК+, однозначно сказать не могу.
     
  • 3.172, Hck3r (?), 22:20, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Давно завезли
     
  • 3.174, Аноним (-), 22:25, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Fibers (stackful coroutines) начиная с версии 8.1
     

  • 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дуо, я игрался с форк-бомбой (мне было очень интересно, можно ли анти-форк-бомбу подорвать рядом с форк-бомбой, чтобы вторая потушила бы первую), и нну я скажу это такие тормоза системы...

     
  • 2.389, Карлос Сношайтилис (ok), 23:34, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Миллион процессов в системе?

    Хорошо, что не перевелись ещё эксперты на опеннете...

     

  • 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.92, jobserver (ok), 18:57, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    интересно каким будет на расте правильное потребление памяти
     
  • 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.334, Kuku (?), 23:58, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Наконец-то, хоть один человек сообразил, в чем причина
     
  • 3.390, Карлос Сношайтилис (ok), 23:36, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Этот комментарий надо вставить в статью.
     

  • 1.78, Аноним (78), 18:40, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Я разочарован питоном :(
     
     
  • 2.98, anonymous (??), 19:00, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    python оказался довольно удобным калькулятором с подходящим набором инструментов - jupyter и pandas.
     
     
  • 3.249, Прохожий (??), 10:09, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Некоторые считают pandas тормознутым и с кривым API, переходят на polars поэтому.
     
  • 2.135, Карлос Сношайтилис (ok), 19:35, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Питон прекрасен для прототипов, для любых.

    Но тащить его в нагруженный прод...
    Сил этим героям.

     
     
  • 3.166, Аноним (78), 21:32, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    >тащить его в нагруженный прод

    Ты будешь удивлен, но питон именно в проде в дохерище крупнейших проектах. Погуглить за тебя?

     
     
  • 4.222, Аноним (-), 04:30, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Ты будешь удивлен, но питон именно в проде в дохерище крупнейших проектах.
    > Погуглить за тебя?

    Зачем?! Достаточно сказать что гугл сделал го - для замены у себя в проде питона :). Это все что надо знать о использовании питона в проде и его производительности.

     
     
  • 5.261, чатжпт (?), 10:31, 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 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Где я сказал, что функциональность не нужна? Я просто заметил об ограниченности понимания этого термина предыдущим высказывающимся.
     

  • 1.83, jobserver (ok), 18:45, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    java 8ГБ. его тест на java для 10_000_000 зелёных потоков.
     
     
  • 2.111, chdlb (?), 19:10, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    этот тест кал читай ниже

    а в джаве виртуальные потоки фиг пойми сколько будут создавать реальных потоков в ОС

     
     
  • 3.118, Аноним (-), 19:14, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    здесь про корутины посты уместны?
     

  • 1.95, RM (ok), 18:58, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    Erlang нет, нещитово
     
  • 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.171, Аноним (-), 22:15, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Не убедительно Твои потоки могут жить нетривиальное время только если они будут... большой текст свёрнут, показать
     
  • 2.178, Аноним (-), 22:40, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Лол, так ThreadPool.ThreadCount это же количество ядерных потоков в пуле, так? Их *естественно* будет столько сколько ядер или может чуть больше чем ядер. Нет никакого смысла увеличивать дальше, даже более того есть огромный смысл не увеличивать, чтобы снизить нагрузку на ядерный шедулер, который со всеми его расчётами приоритетов и переключением между kernel и user spaces только процессорные такты жрёт.


    Так что у меня есть уверенный ответ на:

    > Я может чего-то не понимаю

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

     
     
  • 3.189, chdlb (?), 00:21, 30/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.252, Аноним (-), 10:17, 30/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.331, Аноним (331), 20:56, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ты немного путаешься в понимании. Task.Delay как раз используется, чтобы показать, как система обрабатывает большое количество асинхронных операций без блокировки потоков. Это тестирование способности управления задачами, а не ThreadPool. Thread.Sleep тут вообще неуместен, потому что он блокирует поток, ломая саму идею асинхронности. Лимит в 16 потоков связан с количеством ядер, но к тесту он не имеет прямого отношения — тест про управление задачами, а не про пределы ThreadPool.
     
     
  • 3.371, chdlb (?), 23:01, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ну откуда вы лезете В понимании кого чего Тебя ОК согласен Delay там, чтобы ... большой текст свёрнут, показать
     
     
  • 4.399, Аноним (399), 12:39, 10/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ты вообще не понимаешь, что такое асинхронность
     
     
  • 5.401, chdlb (?), 11:12, 11/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Ты вообще не понимаешь, что такое асинхронность

    ты не понимаешь, что такое логика и интеллект

     

  • 1.120, Пишу с 3 пня (?), 19:16, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Интересно бы сравнить все это на старом железе типа 3 пня без читерства в виде задействованных инструкций.
     
  • 1.160, Аноним (160), 21:00, 29/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Ну-ну очередное сравнение мягкого, пушистого и розового? Запустили бы хотя бы что-нить посчитать в этих задачах, даже 2+2 и то было был бы маленький, но смысл, а так вообще дурoсть, для любителей обсасывать дурoсти.
     
     
  • 2.173, Аноним (-), 22:24, 29/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Асинхронный рантайм не для того, чтобы считать, он для того, чтобы мультиплексир... большой текст свёрнут, показать
     
     
  • 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

    Пропал дом (с)

     
     
  • 7.376, Прохожий (??), 04:38, 02/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вам шашечки или ехать? (c)
     
  • 2.233, Аноним (206), 07:35, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Зачем создавать пул потоков, что за странная идея? Пусть ядро занимается тем, что оно хорошо умеет: управляет потоками.
     
     
  • 3.280, Аноним (-), 12:23, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ядро очень медленно стартует потоки. Лучше стартануть их однократно, и потом многократно использовать.
     
     
  • 4.347, Аноним (206), 08:51, 01/12/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Значит в ядре и надо фиксить это, а не танцевать вокруг языка программирования.
     

  • 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 +/
    если вы столкнулись с необходимостью создать миллион горутин то надо выпит таблеточку и лечь спать а утром подумать о смене работы
     
     
  • 2.186, Аноним (268), 23:37, 29/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Первый нормальный комментарий во всем треде.
     
  • 2.197, голос_из_леса (ok), 01:59, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ему уже попытались объяснить...

    https://github.com/hez2010/async-runtimes-benchmarks-2024/pull/3

     

  • 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 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Толк всё-таки есть, если мы говорим про такие задачи, которые могут какое-то время ожидать операций ввода-вывода. Почитайте про асинхронщину на досуге.
     
  • 4.327, Аноним (327), 20:16, 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 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Это каждому понятно что в этом тесте победили те, кого хотели выбрать победителем теста создатели теста. Вплоть до того что невозможно проверить проводился ли тест в реальности или нет и с какими настройками.
     
  • 2.264, Прохожий (??), 10:39, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Библиотека tokio на является стандартной для языка Rust.
     

  • 1.238, Аноним (240), 08:16, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    При желании код на там же р#сте можно оптимизировать сколько угодно долго а том числе желая всякие ансейфные штуки https://habr.com/ru/articles/598219/ И при том же желании не делать этого для других языков.
     
  • 1.239, Аноним (239), 08:18, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Попробовали бы Nim с Malebolgia. А в этом представлении — баловство.
     
     
  • 2.245, Аноним (245), 09:28, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Да о чём говорить, если зиг не представлен. Тогда у всех растомананов сразу бы спала пелена с глаз.
     
     
  • 3.266, Прохожий (??), 10:42, 30/11/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 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 такие абстракции бесплатные. А в том же Питоне - нет. Как и в Го, Джаве.
     
     
  • 3.284, Аноним (268), 13:08, 30/11/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    В Расте все платное. Поэтому им никто не пользуется. Кроме писателей синтетических тестов.
     
     
  • 4.300, Прохожий (??), 14:27, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Гугл в Андроиде. Амазон в инфраструктуре. Клаудфлэр в прокси. Дропбокс, Дискорд в своих програмах. Мозилла в браузере. Эти все - никто?
     
     
  • 5.373, Аноним (373), 23:05, 01/12/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).

    Этот ответ ближе к телу в отличие от фанбойства Прохожего, где в расте у него все басплатно!)

     

  • 1.253, Аноним (251), 10:20, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Для задач такого типа был придуман Erlang.
     
     
  • 2.269, Аноним (268), 10:51, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Для того чтобы не верить синтетика достойно иметь мозг.
     
     
  • 3.306, Прохожий (??), 14:59, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    А кому тогда верить? Ну кроме каких-то всем известных вещей, типа, интерпретатор всегда медленнее компилятора.
     

  • 1.277, Аноним (277), 11:56, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Как они меряли память?
    Нет вообще ни слова про методику измерения
     
     
  • 2.287, Аноним (268), 13:10, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Посмотри на автора бенчмарка. Это какой-то недоучившийся студент. Непонятно зачем мы его тут вообще обсуждаем.
     
     
  • 3.310, Аноним (310), 16:07, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Автор бенчмарка матёрый разработчик на Java https://pkolaczk.github.io/about/
    студент лишь повторил тест год спустя с новыми версиями.
     

  • 1.278, Аноним (277), 12:00, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Kotlin Корутины обошли яву и даже native image с ~90000 кб на 100000 задач
     
  • 1.285, Аноним (285), 13:08, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +1 +/
    Добавьте в тест Haskell, он в этом плане всех порвет. Ну я так предполагаю.
     
  • 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. Однако вче равно хотелось бы не только графики потребления памяти, но и графики скорости выполнения всех этих задач, а то может оказаться что на деле остальные то в один поток делать будут миллиард лет
     
     
  • 2.332, Аноним (245), 21:23, 30/11/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ну так сделай, разрешаю.
     

  • 1.348, Аноним (206), 08:55, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Для таких задач существует Cisco Chez Scheme.
     
  • 1.369, Вова (?), 21:46, 01/12/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.393, Соль земли (?), 17:22, 03/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    почему java все еще лидирует в энтерпрайзе? ведь программисты дешевле серверов
     
  • 1.395, Аноним (395), 05:12, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Тест больше похож на рекламу C Конечно C потребляет памяти меньше Java, но по... большой текст свёрнут, показать
     
  • 1.396, Фанат (?), 13:07, 04/12/2024 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Мда... Раст настолько плох что сравним с С#. Это фиаско.
     
  • 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.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру