Топ 5 програмски јазици во Македонија

  • Креатор на темата Креатор на темата Ace.Of.Hearts
  • Време на започнување Време на започнување
Друже не сум голем љубител на бенчмарковите затоа што во голема мера ми се ирелевантни за реален проект, на крај од денот ќе имаш ботлнек на I/O, и пак крајниот корисник нема ни да го види бенефитот, а да не навлегуваме во целиот дизајн на системот или во неоптимизиран код.

PHP не сум користел, и искрено не го следам воопшто, а со Fastify баш сега си играм и е ок, затоа и ти го дадов како споредба.

Плус за нас пајтонаште се е брзо ако споредиме со пајтон :D

Ако мислиш на overhead при комуникација со база, во Swoole тоа е решено со тоа што имаш цел pool од db конекции (in memory) кои не се затвораат него се реискористуваат на секој нов реквест.
 
Ако мислиш на overhead при комуникација со база, во Swoole тоа е решено со тоа што имаш цел pool од db конекции (in memory) кои не се затвораат него се реискористуваат на секој нов реквест.
Не само бројот на конекциите со база, комуникација со надворешни API, самата мрежа, на одредени проекти рамот.
Пример на проект што го работевме скоро имавме доста доцнење при повлекување слики/видеа од s3.
 
Комуникација со third-party api не е нешто што може да се контролира, ја зборев за прост случај, праќаш реквест и веднаш добиваш респонс назад. Во однос на слики и све остало хостирано на надворешен сервер it's a no brainer ако сакаш брзо рендерирање, ќе користиш CDN каде ќе земаш од кеш, наместо S3 или S3 ќе го користиш само за сториџ позади CDN от. Е сето тоа си кошта, овие порно сајтовите ако земаа од S3 имаше ем споро да биде ем ќе пропаднеа финансиски, си имаат своја мрежа од сервери низ цел свет, бар порнхаб има.
 
Комуникација со third-party api не е нешто што може да се контролира, ја зборев за прост случај, праќаш реквест и веднаш добиваш респонс назад. Во однос на слики и све остало хостирано на надворешен сервер it's a no brainer ако сакаш брзо рендерирање, ќе користиш CDN каде ќе земаш од кеш, наместо S3 или S3 ќе го користиш само за сториџ позади CDN от. Е сето тоа си кошта, овие порно сајтовите ако земаа од S3 имаше ем споро да биде ем ќе пропаднеа финансиски, си имаат своја мрежа од сервери низ цел свет, бар порнхаб има.
За сториџ беше и во овој случај.
 
Тогаш не би требало секој реквест да ти оди до S3, освен за сликите кои што уште не ти се кеширани.
 
Тогаш не би требало секој реквест да ти оди до S3, освен за сликите кои што уште не ти се кеширани.
Постпроцесирање им правиме, поминуваат низ SAM модел и FFMPEG скрипти. Мора да ги прочиташ цели и да ги вратиш процесираните назад, мора да се и чува оригиналот, и се што е output да запишеш назад во s3 и во база.
 
Постпроцесирање им правиме, поминуваат низ SAM модел и FFMPEG скрипти. Мора да ги прочиташ цели и да ги вратиш процесираните назад, мора да се и чува оригиналот, и се што е output да запишеш назад во s3 и во база.

Ахам, тогаш кеш не ти брка работа ако на секој реквест запишуваш, јас мислев за земање ти се. Друго решение ти е да не користиш S3, туку да ги хостирате на сопствен сервер и комуникацијата да се одвива преку алатки ко RabbitMQ или Kafka и да праќаш блоб од сликата евентуално до серверот, а да враќаш линк од сликата.

А дури и ако ги процесирате сликите, мора да чекаш респонс од S3 и база па да ја вратиш сликата? Зошто тие делови не се стават во Queue? Додека можеш да вратиш блоб после процесирање, а ќе имаш џобови во кју кои што ќе имаат за цел да комуницираат со с3 и со база. Е да постои ризик да иако ја вратиш сликата записот во база и аплоудот да фејлнат, али у саглам кјуинг системи имаш повеќе ритрајс на извршување на џобот, освен ако с3 не е рикнат или дб серверот не е рикнат.
 
Ахам, тогаш кеш не ти брка работа ако на секој реквест запишуваш, јас мислев за земање ти се. Друго решение ти е да не користиш S3, туку да ги хостирате на сопствен сервер и комуникацијата да се одвива преку алатки ко RabbitMQ или Kafka и да праќаш блоб од сликата евентуално до серверот, а да враќаш линк од сликата.

А дури и ако ги процесирате сликите, мора да чекаш респонс од S3 и база па да ја вратиш сликата? Зошто тие делови не се стават во Queue? Додека можеш да вратиш блоб после процесирање, а ќе имаш џобови во кју кои што ќе имаат за цел да комуницираат со с3 и со база. Е да постои ризик да иако ја вратиш сликата записот во база и аплоудот да фејлнат, али у саглам кјуинг системи имаш повеќе ритрајс на извршување на џобот, освен ако с3 не е рикнат или дб серверот не е рикнат.
Бидна веќе на друг сервер, првично беше на aws ама дигна доста пари, таму е само останата постгрес базата.
Во моментов е пак на рентани сервери, ама self managed. Со rsync имаме сетирано автоматски бекап кон backblaze, а примарните слики и видеа доаѓаат на тој сервер. Инаку django, celery, rabitmq е бекендот.

Станува збор за 4к видеа и тоа снимани со 360 камери, секое видео кога се процесира по фрејмови се конвертира во илјадници слики за да се пушти аи моделот, а константно има видеа кои се прикачуваат од теренските екипи и паралелно други се процесираат.
 
1704702260609.png

Да се види кој е кој (без руби и C#)

Go for the win :roker:

Од interpreted languages (PHP, JS, Python) PHP ги јаде и JS и Python. Позитивно сум изненаден од Пајтон, мислев ќе биде најспор и дека ќе биде помалку memory efficient од PHP. Ме чуди само како TS е побрз од JS? Иначе бенчмарк е фибоначи алгоритам.
 
Прегледај го приврзокот 403088

Да се види кој е кој (без руби и C#)

Go for the win :roker:

Од interpreted languages (PHP, JS, Python) PHP ги јаде и JS и Python. Позитивно сум изненаден од Пајтон, мислев ќе биде најспор и дека ќе биде помалку memory efficient од PHP. Ме чуди само како TS е побрз од JS? Иначе бенчмарк е фибоначи алгоритам.
Срање се вакви бенчмаркови, плус во ниеден свет неможе TS да е побрз од JS
 
Прегледај го приврзокот 403088

Да се види кој е кој (без руби и C#)

Go for the win :roker:

Од interpreted languages (PHP, JS, Python) PHP ги јаде и JS и Python. Позитивно сум изненаден од Пајтон, мислев ќе биде најспор и дека ќе биде помалку memory efficient од PHP. Ме чуди само како TS е побрз од JS? Иначе бенчмарк е фибоначи алгоритам.
Јава побрзо и од Go само што 20 пати повеќе меморија зафаќа. :icon_lol:
 
Прегледај го приврзокот 403088

Да се види кој е кој (без руби и C#)

Go for the win :roker:

Од interpreted languages (PHP, JS, Python) PHP ги јаде и JS и Python. Позитивно сум изненаден од Пајтон, мислев ќе биде најспор и дека ќе биде помалку memory efficient од PHP. Ме чуди само како TS е побрз од JS? Иначе бенчмарк е фибоначи алгоритам.
Дали го имаш линкот до кодот?

Љубопитен сум како му е во пајтон, ако не е веќе, а го оптимизира за concurrency (пример ProcessPoolExecutor во комбо со map()) очекувај да е двојно побрз.

П.С искуцај го истото во cython и направи споредба со PHP :P
Автоматски споено мислење:

Срање се вакви бенчмаркови, плус во ниеден свет неможе TS да е побрз од JS
Може, ако js кодот е неоптимизиран, инаку си 100% во право :)
 
Може, ако js кодот е неоптимизиран, инаку си 100% во право :)
Ако не е исти кодот (алгоритамот) тогаш бенчмаркот е срање. После со сликава има други проблеми, има runtume колона но TS не постои во runtime, барем јас не знам за runtimе околина што знае да работи со TS, сите енџини на прелистувачите, node, deno работат само со JS, па затоа ако работиш со TS ти треба и transpiler што ќе ти го конвертира кодот во JS па така конвертираниот JS код од TS е или идентичен или поголем, пример за секој енум генерира дополнителни функции. Компалјерите дополнителен overhead додаваат, има open source проекти кои се switchnaa од TS на JS поради тој проблем (Svelte на пример).
 
Немам пристап до кодот, само сликава со бенчмарковиве ми излезе на Linkedin. Инаку и мене ме зачуди тоа со ТС, пошто runtime во TS e уствари compile/transpile time. Веројатно се мисли на compile+runtime што е ОК, што значи дека TS генерира пооптимален код него ли некој да земе да напише vanila js.

еве го линкот

 
Користење на рекурзија за правење benchmark е многу заебана работа. Фибоначи е алгоритам кој се решава итеративно со 2-3 променливи (ако оди со динамичко ќе има уште една низа). Така да ако го напишел правилно, во сите јазици искористената меморија ќе била доле горе иста. Плус некои јазици прават recursion tail optimization (за жал го немаме тоа во Java) што може да предизвика драстична разлика во резултатите. На крај на ден, баш би сакал да видам код што за 0мс ќе пополни ~40MB RAM во java :D
 

Kajgana Shop

Back
На врв Bottom