The OpenNET Project / Index page

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



"Оценка потребления памяти при одновременном запуске миллиона задач"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Оценка потребления памяти при одновременном запуске миллиона задач"  +/
Сообщение от opennews (?), 29-Ноя-24, 16:42 
Опубликованы результаты тестирования потребления памяти при выполнении кода, создающего миллион параллельно выполняемых сопрограмм. Тестирование проведено для типовой программы, реализованной на языках программирования Rust, C#, Go, Java, Python и JavaScript...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=62314

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Оценка потребления памяти при одновременном запуске миллиона..."  +8 +/
Сообщение от ijuij (?), 29-Ноя-24, 16:42 
А где C/C++? 🤬
Ответить | Правка | Наверх | Cообщить модератору

2. "Оценка потребления памяти при одновременном запуске миллиона..."  +18 +/
Сообщение от Барашек (?), 29-Ноя-24, 16:44 
тренера не играют
Ответить | Правка | Наверх | Cообщить модератору

45. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от Аноним (45), 29-Ноя-24, 17:32 
> тренера не играют

Лол, какие тренера, если в C корутин вообще нет и не будет, а в плюсах они появились лишь в стандарте 2020 года.

Ответить | Правка | Наверх | Cообщить модератору

53. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (53), 29-Ноя-24, 17:45 
> Лол, какие тренера, если в C корутин вообще нет и не будет,

Да могли бы хотя-бы и треды заспаунить каким-нибудь posix threads. Это даже круче ибо полновесные потоки. Интересно же столь наивный brute force в сравнении будет.

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

> а в плюсах они появились лишь в стандарте 2020 года.

И что? Для хруста же можно взять какие-то вообще сторонние "фреймворки" или для жабы - разные VM. А в чем проблемы взять компилер с C++23 тогда?!

Ответить | Правка | Наверх | Cообщить модератору

58. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (58), 29-Ноя-24, 17:49 
> Правда оно там специфичное, под задачу. Си достаточно низкоуровневый чтобы на нем делать многое из того для чего в каком-нибудь Rust придется синтаксис корежить, а в игого и прочих питонах - чешут репу и сообщают что задача нерешаема.

Угу, то-то Торвальдся жалуется, что за 30 лет нормальный менеджмент памяти не осилили.
Но про "специфичное" соглашусь)

> И что? Для хруста же можно взять какие-то вообще сторонние "фреймворки" или для жабы - разные VM. А в чем проблемы взять компилер с C++23 тогда?!

Там есть не только фреймворк, но STD.


Ответить | Правка | Наверх | Cообщить модератору

68. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (-), 29-Ноя-24, 18:00 
> Угу, то-то Торвальдся жалуется, что за 30 лет нормальный менеджмент памяти не осилили.

Я б все понял - если б весь тот набор еще и не пользовался услугами "богов" в виде этого самого Торвальдса и прочих сишников и плюсовиков, чтобы вообще операционку запустить и из нее п...ть вообще о своей крутизне :)

Ах да, даже если кто научился немного шагать по ступенькам к пантеону - это еще не верхушка, а были еще и те кто его строил, на минуточку. Прикиньте, подстава какая?! :)

> Но про "специфичное" соглашусь)

Ну оно там реально под задачу запилено. Зато hello world прикольный!


#include "lwan.h"

LWAN_HANDLER_ROUTE(hello_world, "/")
{
    static const char message[] = "Hello, World!";

    response->mime_type = "text/plain";
    lwan_strbuf_set_static(response->buffer, message, sizeof(message) - 1);

    return HTTP_OK;
}

int main(void) { return lwan_main(); }


Да, я процитировал кастомный скоростной HTTP сервак. На си. Целиком. Нормуль? :). Правда без корутин.

>> разные VM. А в чем проблемы взять компилер с C++23 тогда?!
> Там есть не только фреймворк, но STD.

Ну так что мешало тем господам взять C++23 и сравнить? Их есть уже.

Ответить | Правка | Наверх | Cообщить модератору

90. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (90), 29-Ноя-24, 18:56 
>> Лол, какие тренера, если в C корутин вообще нет и не будет,
> Да могли бы хотя-бы и треды заспаунить каким-нибудь posix threads

Не могли бы, ибо смысл был именно в замере корутин, а не потоков.

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

127. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Совершенно другой аноним (?), 29-Ноя-24, 19:23 
Можно воспользоваться библиотекой corutine.h от Simon Tatham (необходимая часть приведена сразу в исходнике). Для компиляции в linux

;---------------------------X8
#include <stdio.h>
#include <string.h>

#if defined(_WIN32)
  #include <windows.h>
  #define usleep(x) Sleep(x)
#elif defined(__linux__)
  #include <unistd.h>
#endif

/* coroutine.h
*
* Coroutine mechanics, implemented on top of standard ANSI C. See
* https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html for
* a full discussion of the theory behind this.
*/

/*
* coroutine.h is copyright 1995,2000 Simon Tatham.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT.  IN NO EVENT SHALL SIMON TATHAM BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* $Id$
*/

#define ccrContParam     void **ccrParam

#define ccrBeginContext  struct ccrContextTag { int ccrLine
#define ccrEndContext(x) } *x = (struct ccrContextTag *)*ccrParam

#define ccrBegin(x)      if(!x) {x= *ccrParam=malloc(sizeof(*x)); x->ccrLine=0;}\
                         if (x) switch(x->ccrLine) { case 0:;
#define ccrFinish(z)     } free(*ccrParam); *ccrParam=0; return (z)
#define ccrFinishV       } free(*ccrParam); *ccrParam=0; return

#define ccrReturn(z)     \
        do {\
            ((struct ccrContextTag *)*ccrParam)->ccrLine=__LINE__;\
            return (z);\
          case __LINE__:;\
        } while (0)
#define ccrReturnV       \
        do {\
            ((struct ccrContextTag *)*ccrParam)->ccrLine=__LINE__;\
            return; case __LINE__:;\
        } while (0)

#define ccrStop(z)       do{ free(*ccrParam); *ccrParam=0; return (z); }while(0)
#define ccrStopV         do{ free(*ccrParam); *ccrParam=0; return; }while(0)

#define ccrContext       void *
#define ccrAbort(ctx)    do { free (ctx); ctx = 0; } while (0)

int task(ccrContParam) {
   ccrBeginContext;
   int i;
   ccrEndContext(foo);

   ccrBegin(foo);
   for (foo->i=0; foo->i<10; foo->i++) {
      usleep(1000);
      ccrReturn(foo->i);
   }
   ccrFinish(-1);
}

int done(ccrContext* tasks, unsigned int *j, unsigned int num_tasks) {
  unsigned int i;
  int ret=1;

  for (i=*j; i<num_tasks; i++) {
    if (tasks[i]) {
      *j=i;
      ret=0;
      break;
    }
  }
  return ret;
}

int main(int argc, char* argv[]) {
  ccrContext* tasks = NULL;
  unsigned int i, j, num_tasks;
  char* p;

  do {
    if (argc<=1)
      break;
  
    num_tasks = strtoul(argv[1], &p, 10);

    if ((tasks = calloc(num_tasks, sizeof(*tasks))) == NULL)
      break;
    j = 0;
      
    do {
      for (i=0; i<num_tasks; i++) {
        printf("#%u got number %d\n", i, task(&tasks[i]));
      }
    } while (!done(tasks, &j, num_tasks));

  } while (0);

  free(tasks);

  return 0;
}
;---------------------------X8
у меня в Windows XP 32bit по памяти (Virtual Size) заняло 9736К.

Ответить | Правка | Наверх | Cообщить модератору

93. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от ИмяХ (ok), 29-Ноя-24, 18:58 
>>2020 года

Так уже 4 года прошло

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

12. Скрыто модератором  –8 +/
Сообщение от Аноним (-), 29-Ноя-24, 16:52 
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

21. Скрыто модератором  +/
Сообщение от ijuij (?), 29-Ноя-24, 17:00 
Ответить | Правка | Наверх | Cообщить модератору

28. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 17:10 
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

34. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (34), 29-Ноя-24, 17:17 
Так это среди юниоров забег же.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

42. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (42), 29-Ноя-24, 17:28 
Скорее всего Rust будет наиболее близким к их результатам так что можно мысленно убавить несколько позиций от Rust и получить примерный результат C/CPP
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

44. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (45), 29-Ноя-24, 17:29 
> А где C/C++?

А в C нет корутин 😂

В C++ они появились только в 2020 году. Видимо, люди как пользовались Бустом, так и продолжают пользоваться.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

55. "Оценка потребления памяти при одновременном запуске миллиона..."  +2 +/
Сообщение от Аноним (53), 29-Ноя-24, 17:48 
> А в C нет корутин 😂

В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!

> В C++ они появились только в 2020 году. Видимо, люди как пользовались Бустом,
> так и продолжают пользоваться.

Это какой-то не особо убедительный аргумент для обоснования результатов бенчмарка и "почему нет %s".

Ответить | Правка | Наверх | Cообщить модератору

62. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (62), 29-Ноя-24, 17:53 
> Это какой-то не особо убедительный аргумент для обоснования результатов бенчмарка и "почему нет %s".

А кто мешает - тебе, как больше всех "надобному"?
А то ты уже минимум два поста накатал, почему и как можно было бы ... Или у тебя лапки?

Ответить | Правка | Наверх | Cообщить модератору

63. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (58), 29-Ноя-24, 17:54 
>> А в C нет корутин 😂
> В си есть возможность их сделать - и ест реализации.

Но в стандарте нету. А стандарт это святое!
Понятно, что и на брейнфаке можно сделать, но получится брейнфачно.

>  И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!

Потому что у хруста 2 версии - async_std и кастомщина.
Можно посмотреть и решить, стоит ли заморачиваться с токио или достаточно того что "из коробки".


Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

72. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (-), 29-Ноя-24, 18:07 
>> В си есть возможность их сделать - и ест реализации.
> Но в стандарте нету. А стандарт это святое!

Да, а почему в хрусте тогда 2 нестандартные реализации и в жабе виртуалки какие-то? Или имелись в виду - ДВОЙНЫЕ стандарты? Ну, если кому двойные стандарты святое, они конечно далеко пойдут :)

> Понятно, что и на брейнфаке можно сделать, но получится брейнфачно.

Это конечно мощный аргумент. А цеплять какой-то сторонний брейнфак к хрусту - не брейнфачно? Хотя как по мне последние версии плюсов и хруста за звание брейнфак-2.0 могут успешно зарубиться, если что. Некоторые на них такие конструкции заворачивают что вам даже поллитра после похода по грибы в лес - не поможет.

>>  И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!
> Потому что у хруста 2 версии - async_std и кастомщина.

Ну так в сях тоже можно кастомщину взять было. Wtf is a difference?

> Можно посмотреть и решить, стоит ли заморачиваться с токио или достаточно того
> что "из коробки".

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

Ответить | Правка | Наверх | Cообщить модератору

84. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (90), 29-Ноя-24, 18:50 
> В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!

Потому что бессмысленно, ибо сегодня удел C - это сугубо embedded, а где ты там будешь тулить корутины?

Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

133. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Страдивариус (?), 29-Ноя-24, 19:28 
> В си есть возможность их сделать - и ест реализации. И если для хруста можно брать сторонние "фреймворки" то почему и для си так же нельзя?!

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

Невозможно сделать stackless корутину без помощи компилятора. Кто будет код твоей функции в конечный автомат превращать?

Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

124. Скрыто модератором  +/
Сообщение от Аноним (124), 29-Ноя-24, 19:20 
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

79. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от 12yoexpert (ok), 29-Ноя-24, 18:41 
с ними график был бы некрасивый, один пиксель и С/С++ и все пиксели у остальных
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

117. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (62), 29-Ноя-24, 19:14 
> с ними график был бы некрасивый, один пиксель и С/С++ и все пиксели у остальных

"Talk is cheap, show me the code!"(c)

Ответить | Правка | Наверх | Cообщить модератору

3. "Оценка потребления памяти при одновременном запуске миллиона..."  +6 +/
Сообщение от Андрей (??), 29-Ноя-24, 16:45 
Вот тебе и Go...
Ответить | Правка | Наверх | Cообщить модератору

77. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от Человек из глубинки (?), 29-Ноя-24, 18:35 
То что у него GC кривой - это совсем не новость.
Ответить | Правка | Наверх | Cообщить модератору

5. "Оценка потребления памяти при одновременном запуске миллиона..."  +6 +/
Сообщение от Пью чай и греюсь пледом (?), 29-Ноя-24, 16:45 
В целом шарп неплохой коспромис по производительности, удобству и кроссплатформенности.
Ответить | Правка | Наверх | Cообщить модератору

13. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от ijuij (?), 29-Ноя-24, 16:54 
Вы пробовали использовать его на Debian/Ubuntu/Arch Linux? Каковы ваши впечатления?

Ответить | Правка | Наверх | Cообщить модератору

18. "Оценка потребления памяти при одновременном запуске миллиона..."  –2 +/
Сообщение от Аноним (18), 29-Ноя-24, 16:57 
Я не программист всех языков, в отличии от остальных комментаторов, но мои хеллоуворлды работали исправно :-)
Ответить | Правка | Наверх | Cообщить модератору

25. "Оценка потребления памяти при одновременном запуске миллиона..."  –2 +/
Сообщение от nume (ok), 29-Ноя-24, 17:06 
Использую, проблем нет
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

38. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (34), 29-Ноя-24, 17:20 
Говорят, на .нет 9.х неплоха
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

65. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (65), 29-Ноя-24, 17:58 
А джава по памяти. Посмеялся, спасибо.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

7. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (7), 29-Ноя-24, 16:49 
Результаты Go поражают 🤦‍♂️
Ответить | Правка | Наверх | Cообщить модератору

16. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от ijuij (?), 29-Ноя-24, 16:56 
Это вполне ожидаемо. Я применяю его для разработки MVP, а если продукт окажется успешным, то перепишу его на C++.

Ответить | Правка | Наверх | Cообщить модератору

36. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от Аноним (34), 29-Ноя-24, 17:19 
А почему не раст?)
Ответить | Правка | Наверх | Cообщить модератору

46. "Оценка потребления памяти при одновременном запуске миллиона..."  –2 +/
Сообщение от Аноним (-), 29-Ноя-24, 17:34 
> А почему не раст?)

Может у человека 10-20 лет опыта плюсов и он все грабли знает наизусть.
А может проекты не стоят затрат сил на обеспечение надежности и безопасности.

Ответить | Правка | Наверх | Cообщить модератору

87. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 18:54 
Ответить | Правка | Наверх | Cообщить модератору

47. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от НяшМяш (ok), 29-Ноя-24, 17:37 
Потому что без уязвимостей потом денег за исправление не заплатят.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

89. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 18:56 
Ответить | Правка | Наверх | Cообщить модератору

50. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Вася Пупкин (?), 29-Ноя-24, 17:41 
Замени го на питон. И плюсы на раст. и тогда все будет правильно, быстрее, удобно и надежнее.
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

60. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (53), 29-Ноя-24, 17:51 
> Замени го на питон.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

91. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 18:57 
Ответить | Правка | Наверх | Cообщить модератору

8. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Пью чай и греюсь пледом (?), 29-Ноя-24, 16:49 
Кстати, ноде вообще пофиг, она тут лидер по стабильности :-)
Ответить | Правка | Наверх | Cообщить модератору

10. "Оценка потребления памяти при одновременном запуске миллиона..."  –6 +/
Сообщение от Аноним (-), 29-Ноя-24, 16:51 
Java тормознутая. Легенда о тормознутости Жабы доказана. Что и требовалось доказать.
Ответить | Правка | Наверх | Cообщить модератору

22. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (18), 29-Ноя-24, 17:00 
Ты вообще читал новость? 🤦
Ответить | Правка | Наверх | Cообщить модератору

94. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (90), 29-Ноя-24, 18:58 
Да он даже заголовок не осилил 😂
Ответить | Правка | Наверх | Cообщить модератору

37. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (37), 29-Ноя-24, 17:19 
Ты различаешь скорость работы и жручесть памяти? По скорости ява вполне сравнима даже с компилируемыми в нативщину языками, а вот по жручести памяти полное днище. Это было основное, что мне в ней крайне не нравилось.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

88. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от Аноним (88), 29-Ноя-24, 18:55 
Жручесть памяти в JVM это примерно как жручесть памяти в Линукс. Новички тоже порой удивляются — почему Линукс использует почти 100% оперативки во время работы. Но это и не удивительно, «VM» в акрониме «JVM» как бы намекает, но не все намёк поняли, и уж тем более не все дочитали до конца мануал как объяснить JVM сколько памяти ей доступно. Да и зачем вникать, когда можно просто повторять услышанное ща гаражами от старших пацанов и прослыть сведущим человеком?

Для примера, у меня есть в проде микросервис на Яве с потреблением памяти в районе 128 MB, при этом каждый инстанс перемалывает пару сотен мегабит трафика в секунду. Перемалывали бы и больше, но бэкэнд не успевает так быстро токены валидировать. Что иронично, бэкэнд на C++, но проблема конечно же не в языке реализации, а в том что БД за ними не успевает.

Ответить | Правка | Наверх | Cообщить модератору

69. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (65), 29-Ноя-24, 18:00 
Какие легенды? Это ещё деды в учебники по физике записали.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

11. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Шарп (ok), 29-Ноя-24, 16:52 
По сути c# с AOT победитель, потому что память потребляет чуть больше раста, но при этом является нормальным языком без необходимости приседать с borrow checker.
Ответить | Правка | Наверх | Cообщить модератору

15. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (18), 29-Ноя-24, 16:55 
В долгосрочной перспективе победитель нода :-) Потому что вообще не надо конпилять, уже занимает львиную долю рынка и относительно простая в плане освоения. Но шарп хорош тем, что он не только для вэба.
Ответить | Правка | Наверх | Cообщить модератору

30. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Rev (ok), 29-Ноя-24, 17:13 
Ага, а дистрибутивы продукта занимают гигабайты, состоя из 30000 файлов.
Нода - самый отстой из всего. На втором месте руби.
Ответить | Правка | Наверх | Cообщить модератору

48. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от анонимище (?), 29-Ноя-24, 17:40 
а Руби чем вам не угодил?
Ответить | Правка | Наверх | Cообщить модератору

49. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от НяшМяш (ok), 29-Ноя-24, 17:41 
Пакет ноды занимает 50-60 мегабайт в моём дистрибутиве после распаковки. Даже меньше, чем питон. Найти приложение на ноде с гигабайтами исходников надо ещё постараться. Да и есть кучи компилеров, транспилеров и бандлеров, чтобы это всё упаковать в компактный вид.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

97. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 18:59 
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

126. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (124), 29-Ноя-24, 19:23 
Нет, не самый. Есть ещё Electron - это нода вместе с движком от Хромиума...
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

100. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Олололололололо (-), 29-Ноя-24, 19:02 
Любой проект на ноде тащит за собой миллиарды миллиардов файлов с npm сайта. Кто-то проверят, что в этих файлах понаписали? Нет, нет и нет. В результате если писать хоть сколько либо серьёзный проект на ноде нужно писать всё с нуля и не использовать ни одного пакета с npm,  а так на ноде не бывает.
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

14. "Оценка потребления памяти при одновременном запуске миллиона..."  –3 +/
Сообщение от Аноним (14), 29-Ноя-24, 16:55 
> 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 как обычно, без тайного знания, всё будет неоптимально

Ответить | Правка | Наверх | Cообщить модератору

31. "Оценка потребления памяти при одновременном запуске миллиона..."  +4 +/
Сообщение от Rev (ok), 29-Ноя-24, 17:14 
Это не тайные знания, это понимание базовой функциональности.
Ответить | Правка | Наверх | Cообщить модератору

32. "Оценка потребления памяти при одновременном запуске миллиона..."  –2 +/
Сообщение от Аноним (32), 29-Ноя-24, 17:15 
Rust (async_std) Стандартная библиотека
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

64. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (62), 29-Ноя-24, 17:57 
> Как всегда с Растом: если просто использовать API как обычно, без тайного знания, всё будет неоптимально

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


Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

19. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Ананий (?), 29-Ноя-24, 16:59 
Як так, почему пихон жрёт меньше гошечки?
Ответить | Правка | Наверх | Cообщить модератору

26. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Юрий (??), 29-Ноя-24, 17:07 
Ленивый)
Ответить | Правка | Наверх | Cообщить модератору

57. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (57), 29-Ноя-24, 17:49 
Экономный.
Ответить | Правка | Наверх | Cообщить модератору

107. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:06 
Ответить | Правка | Наверх | Cообщить модератору

61. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (53), 29-Ноя-24, 17:53 
> Як так, почему пихон жрёт меньше гошечки?

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

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

66. Скрыто модератором  +/
Сообщение от анонимище (?), 29-Ноя-24, 17:59 
Ответить | Правка | Наверх | Cообщить модератору

82. "Оценка потребления памяти при одновременном запуске миллиона..."  +3 +/
Сообщение от Аноним (82), 29-Ноя-24, 18:44 
потому что в приведенном бенчмарке питон создает пустые коллбэки на однопоточном эвентлупе (тоесть внутри питоно-тасок нельзя вызывать ничего вычистительно тяжелого\блокирующего, это просто стейт-машина)

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

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

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

109. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:08 
Ответить | Правка | Наверх | Cообщить модератору

23. "Оценка потребления памяти при одновременном запуске миллиона..."  +3 +/
Сообщение от Аноним (23), 29-Ноя-24, 17:04 
>при одновременном запуске миллиона задач

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

Ответить | Правка | Наверх | Cообщить модератору

39. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от Аноним (34), 29-Ноя-24, 17:24 
Вы про корутины начитались что ли?
Ответить | Правка | Наверх | Cообщить модератору

80. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от 12yoexpert (ok), 29-Ноя-24, 18:42 
это лекция для колхозников
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

110. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:09 
Ответить | Правка | Наверх | Cообщить модератору

51. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Дед Анон (?), 29-Ноя-24, 17:42 
А где PHP? Хотелось бы посмотреть на фоне Go
Ответить | Правка | Наверх | Cообщить модератору

74. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Anyone (?), 29-Ноя-24, 18:32 
В РНР уже завезли сопрограммы без костылей?
Ответить | Правка | Наверх | Cообщить модератору

54. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (57), 29-Ноя-24, 17:47 
Уровень новостей падает все ниже. Скоро будут новости из разряда смотрете как я могу.
Ответить | Правка | Наверх | Cообщить модератору

67. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (67), 29-Ноя-24, 18:00 
Ещё не было новостей, как разраб на хрусте купил домик на Бали за $100000. Хотя эта новость должна была появиться как раз сегодня.
Ответить | Правка | Наверх | Cообщить модератору

70. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (65), 29-Ноя-24, 18:01 
Не накопил ещё)
Ответить | Правка | Наверх | Cообщить модератору

108. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (62), 29-Ноя-24, 19:07 
> Ещё не было новостей, как разраб на хрусте купил шалаш на Бали за $100_000.

Пофиксил, не благодари ...

И это, мне почти интересно - опеннетные кексперты, вообще -- из своего Мухокакска выезжают?
Или же "не нужно, можно и в тырьнете почитать, как везде все на самом деле!"?


Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

113. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:11 
Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

59. "Оценка потребления памяти при одновременном запуске миллиона..."  +2 +/
Сообщение от аНОНИМemail (?), 29-Ноя-24, 17:51 
То есть это не про процессы и даже не про OS-треды, а про какие-то у каждой пепяки собственные симулякры. Значимость=0
Ответить | Правка | Наверх | Cообщить модератору

76. "Оценка потребления памяти при одновременном запуске миллиона..."  –1 +/
Сообщение от Аноним (-), 29-Ноя-24, 18:33 
Если ты кликнешь на ссылку на прошлогодний тест, то там тестируются и ядерные треды, но результаты для них показаны только для 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дуо, я игрался с форк-бомбой (мне было очень интересно, можно ли анти-форк-бомбу подорвать рядом с форк-бомбой, чтобы вторая потушила бы первую), и нну я скажу это такие тормоза системы...

Ответить | Правка | Наверх | Cообщить модератору

115. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:12 
Ответить | Правка | Наверх | Cообщить модератору

105. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (57), 29-Ноя-24, 19:05 
Очередная новость где всеми силами хотят показать превосходство раста. Которого нет. Графики ещё небось от балды нарисованы.
Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

75. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от Аноним (82), 29-Ноя-24, 18:32 
Автор не понимает как устроен tokio-runtime и как им пользоваться

Автор создал мильен футур, которые ничего не весят и не делают, по-сути мильен пустых коллбэков (только ждут события таймера от epoll\etc)

по-дефолту в tokio сейчас включен multi_threaded_runtime, и, чтобы использовать который, простых футур недостаточно, а нужно использовать специальный апи task::block_in_place

https://docs.rs/tokio/latest/tokio/task/index.html#block_in_...

чтобы на честных условиях сравниваться с Java VirtualThreads и с горутинами Golang

Ответить | Правка | Наверх | Cообщить модератору

92. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от jobserver (ok), 29-Ноя-24, 18:57 
интересно каким будет на расте правильное потребление памяти
Ответить | Правка | Наверх | Cообщить модератору

114. Скрыто модератором  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:12 
Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

130. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:25 
вот вам когда чемоданы заедут - будете пистить.

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

Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

78. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (78), 29-Ноя-24, 18:40 
Я разочарован питоном :(
Ответить | Правка | Наверх | Cообщить модератору

81. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от 12yoexpert (ok), 29-Ноя-24, 18:43 
а я нет, питонистов можно троллить
Ответить | Правка | Наверх | Cообщить модератору

85. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (85), 29-Ноя-24, 18:51 
> а я нет, питонистов можно троллить

Чем? Тем что у них вялый питон?
Тем что у них питон еле шевелится?
Чем что у них питон слона сожрал?

Та ну, они к этом у же привыкли.

Ответить | Правка | Наверх | Cообщить модератору

98. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от anonymous (??), 29-Ноя-24, 19:00 
python оказался довольно удобным калькулятором с подходящим набором инструментов - jupyter и pandas.
Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

106. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (57), 29-Ноя-24, 19:06 
Ты повелся на маркетинг.
Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

116. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:13 
Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

135. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Карлос Сношайтилис (ok), 29-Ноя-24, 19:35 
Питон прекрасен для прототипов, для любых.

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

Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

83. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от jobserver (ok), 29-Ноя-24, 18:45 
java 8ГБ. его тест на java для 10_000_000 зелёных потоков.
Ответить | Правка | Наверх | Cообщить модератору

111. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:10 
этот тест кал читай ниже

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

Ответить | Правка | Наверх | Cообщить модератору

118. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:14 
Ответить | Правка | Наверх | Cообщить модератору

95. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от RM (ok), 29-Ноя-24, 18:58 
Erlang нет, нещитово
Ответить | Правка | Наверх | Cообщить модератору

96. Скрыто модератором  +/
Сообщение от chdlb (?), 29-Ноя-24, 18:59 
Ответить | Правка | Наверх | Cообщить модератору

99. "Оценка потребления памяти при одновременном запуске миллиона..."  +1 +/
Сообщение от chdlb (?), 29-Ноя-24, 19:01 
какого черта мои ответы скрываются удаляются и прочее??? опенок в топку или что?
Ответить | Правка | Наверх | Cообщить модератору

119. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 29-Ноя-24, 19:15 
Ответить | Правка | Наверх | Cообщить модератору

122. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Пишу с 3 пня (?), 29-Ноя-24, 19:17 
Просто у админа фляга свистит после февраля 2022. Даже Михаил Шигopин один из самых давних завсегдатаев ушёл.
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

128. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:23 
так у меня технические коменты, а не политические

а Шигорин обалдуй даже по моим меркам, ушел и черт с ним

не на похрониксе же новости читать и коменты писать, понастраивают гоовнобоотов

Ответить | Правка | Наверх | Cообщить модератору

136. Скрыто модератором  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:37 
Ответить | Правка | Наверх | Cообщить модератору

131. Скрыто модератором  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:27 
Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

101. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:02 
специально для особоодаренных модеров буду по кускам вставлять
--


Я может чего-то не понимаю, но вот это:

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 для тасков? бред

Ответить | Правка | Наверх | Cообщить модератору

102. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:03 
кстати здесь нет capacity для листа, т.е. они плюсуют время на релокейшен внутреннего массива для листа (4,8,16,32) и тд, это же лютая дичь, плюньте в морду тем кто писал такие тесты

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

for (int i = 0; i < numTasks; i++)
{
    tasks.Add(Task.Run(() => {
        Console.WriteLine(ThreadPool.ThreadCount);
    }));
}

Ответить | Правка | Наверх | Cообщить модератору

125. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 29-Ноя-24, 19:21 
Ответить | Правка | Наверх | Cообщить модератору

129. Скрыто модератором  +1 +/
Сообщение от Пишу с 3 пня (?), 29-Ноя-24, 19:24 
Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

103. Скрыто модератором  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:03 
Ответить | Правка | Наверх | Cообщить модератору

104. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от chdlb (?), 29-Ноя-24, 19:05 
надо же много строк, скрыто нубом мобиратором, ну будем дальше засирать чат, я перефразирую )))

Output:
4
4
5
5
16
16
16
6
16
7
16
8
16
9
16
...
16
...

он уперся в 16 ядер которые у меня есть и точка

Ответить | Правка | Наверх | Cообщить модератору

121. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 29-Ноя-24, 19:17 
Ответить | Правка | Наверх | Cообщить модератору

134. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Аноним (-), 29-Ноя-24, 19:33 
слуш, при всём уважении, у меня 256гб х4 и пара почти-топовых e5v4. ты бы глянул как это на 9к тредриперах с 12 каналами работает, для начала, тут же разговор про серверные анлимиты, от продаванов, нет?
Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

120. "Оценка потребления памяти при одновременном запуске миллиона..."  +/
Сообщение от Пишу с 3 пня (?), 29-Ноя-24, 19:16 
Интересно бы сравнить все это на старом железе типа 3 пня без читерства в виде задействованных инструкций.
Ответить | Правка | Наверх | Cообщить модератору

123. Скрыто модератором  –2 +/
Сообщение от Аноним (-), 29-Ноя-24, 19:19 
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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