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

Член од
26 јануари 2009
Мислења
11.826
Поени од реакции
18.514
Друже не сум голем љубител на бенчмарковите затоа што во голема мера ми се ирелевантни за реален проект, на крај од денот ќе имаш ботлнек на I/O, и пак крајниот корисник нема ни да го види бенефитот, а да не навлегуваме во целиот дизајн на системот или во неоптимизиран код.

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

Плус за нас пајтонаште се е брзо ако споредиме со пајтон :D
Ако мислиш на overhead при комуникација со база, во Swoole тоа е решено со тоа што имаш цел pool од db конекции (in memory) кои не се затвораат него се реискористуваат на секој нов реквест.
 

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
15.969
Поени од реакции
35.927
Ако мислиш на overhead при комуникација со база, во Swoole тоа е решено со тоа што имаш цел pool од db конекции (in memory) кои не се затвораат него се реискористуваат на секој нов реквест.
Не само бројот на конекциите со база, комуникација со надворешни API, самата мрежа, на одредени проекти рамот.
Пример на проект што го работевме скоро имавме доста доцнење при повлекување слики/видеа од s3.
 
Член од
26 јануари 2009
Мислења
11.826
Поени од реакции
18.514
Комуникација со third-party api не е нешто што може да се контролира, ја зборев за прост случај, праќаш реквест и веднаш добиваш респонс назад. Во однос на слики и све остало хостирано на надворешен сервер it's a no brainer ако сакаш брзо рендерирање, ќе користиш CDN каде ќе земаш од кеш, наместо S3 или S3 ќе го користиш само за сториџ позади CDN от. Е сето тоа си кошта, овие порно сајтовите ако земаа од S3 имаше ем споро да биде ем ќе пропаднеа финансиски, си имаат своја мрежа од сервери низ цел свет, бар порнхаб има.
 

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
15.969
Поени од реакции
35.927
Комуникација со third-party api не е нешто што може да се контролира, ја зборев за прост случај, праќаш реквест и веднаш добиваш респонс назад. Во однос на слики и све остало хостирано на надворешен сервер it's a no brainer ако сакаш брзо рендерирање, ќе користиш CDN каде ќе земаш од кеш, наместо S3 или S3 ќе го користиш само за сториџ позади CDN от. Е сето тоа си кошта, овие порно сајтовите ако земаа од S3 имаше ем споро да биде ем ќе пропаднеа финансиски, си имаат своја мрежа од сервери низ цел свет, бар порнхаб има.
За сториџ беше и во овој случај.
 
Член од
26 јануари 2009
Мислења
11.826
Поени од реакции
18.514
Тогаш не би требало секој реквест да ти оди до S3, освен за сликите кои што уште не ти се кеширани.
 

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
15.969
Поени од реакции
35.927
Тогаш не би требало секој реквест да ти оди до S3, освен за сликите кои што уште не ти се кеширани.
Постпроцесирање им правиме, поминуваат низ SAM модел и FFMPEG скрипти. Мора да ги прочиташ цели и да ги вратиш процесираните назад, мора да се и чува оригиналот, и се што е output да запишеш назад во s3 и во база.
 
Член од
26 јануари 2009
Мислења
11.826
Поени од реакции
18.514
Постпроцесирање им правиме, поминуваат низ SAM модел и FFMPEG скрипти. Мора да ги прочиташ цели и да ги вратиш процесираните назад, мора да се и чува оригиналот, и се што е output да запишеш назад во s3 и во база.
Ахам, тогаш кеш не ти брка работа ако на секој реквест запишуваш, јас мислев за земање ти се. Друго решение ти е да не користиш S3, туку да ги хостирате на сопствен сервер и комуникацијата да се одвива преку алатки ко RabbitMQ или Kafka и да праќаш блоб од сликата евентуално до серверот, а да враќаш линк од сликата.

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

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
15.969
Поени од реакции
35.927
Ахам, тогаш кеш не ти брка работа ако на секој реквест запишуваш, јас мислев за земање ти се. Друго решение ти е да не користиш S3, туку да ги хостирате на сопствен сервер и комуникацијата да се одвива преку алатки ко RabbitMQ или Kafka и да праќаш блоб од сликата евентуално до серверот, а да враќаш линк од сликата.

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

Станува збор за 4к видеа и тоа снимани со 360 камери, секое видео кога се процесира по фрејмови се конвертира во илјадници слики за да се пушти аи моделот, а константно има видеа кои се прикачуваат од теренските екипи и паралелно други се процесираат.
 
Член од
26 јануари 2009
Мислења
11.826
Поени од реакции
18.514
1704702260609.png

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

Go for the win :roker:

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

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

Go for the win :roker:

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

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

Go for the win :roker:

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

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
15.969
Поени од реакции
35.927
Прегледај го приврзокот 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% во право :)
 
Член од
15 ноември 2013
Мислења
1.486
Поени од реакции
2.553
Може, ако js кодот е неоптимизиран, инаку си 100% во право :)
Ако не е исти кодот (алгоритамот) тогаш бенчмаркот е срање. После со сликава има други проблеми, има runtume колона но TS не постои во runtime, барем јас не знам за runtimе околина што знае да работи со TS, сите енџини на прелистувачите, node, deno работат само со JS, па затоа ако работиш со TS ти треба и transpiler што ќе ти го конвертира кодот во JS па така конвертираниот JS код од TS е или идентичен или поголем, пример за секој енум генерира дополнителни функции. Компалјерите дополнителен overhead додаваат, има open source проекти кои се switchnaa од TS на JS поради тој проблем (Svelte на пример).
 
Член од
26 јануари 2009
Мислења
11.826
Поени од реакции
18.514
Немам пристап до кодот, само сликава со бенчмарковиве ми излезе на Linkedin. Инаку и мене ме зачуди тоа со ТС, пошто runtime во TS e уствари compile/transpile time. Веројатно се мисли на compile+runtime што е ОК, што значи дека TS генерира пооптимален код него ли некој да земе да напише vanila js.

еве го линкот

 

Amaterasu

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

Kajgana Shop

На врв Bottom