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

Z

zmej gorjanin

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

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

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

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
16.238
Поени од реакции
36.513
Ако мислиш на overhead при комуникација со база, во Swoole тоа е решено со тоа што имаш цел pool од db конекции (in memory) кои не се затвораат него се реискористуваат на секој нов реквест.
Не само бројот на конекциите со база, комуникација со надворешни API, самата мрежа, на одредени проекти рамот.
Пример на проект што го работевме скоро имавме доста доцнење при повлекување слики/видеа од s3.
 
Z

zmej gorjanin

Гостин
Комуникација со third-party api не е нешто што може да се контролира, ја зборев за прост случај, праќаш реквест и веднаш добиваш респонс назад. Во однос на слики и све остало хостирано на надворешен сервер it's a no brainer ако сакаш брзо рендерирање, ќе користиш CDN каде ќе земаш од кеш, наместо S3 или S3 ќе го користиш само за сториџ позади CDN от. Е сето тоа си кошта, овие порно сајтовите ако земаа од S3 имаше ем споро да биде ем ќе пропаднеа финансиски, си имаат своја мрежа од сервери низ цел свет, бар порнхаб има.
 

Lester Freamon

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

zmej gorjanin

Гостин
Тогаш не би требало секој реквест да ти оди до S3, освен за сликите кои што уште не ти се кеширани.
 

Lester Freamon

A man of focus, commitment, sheer will...
Член од
14 јануари 2015
Мислења
16.238
Поени од реакции
36.513
Тогаш не би требало секој реквест да ти оди до S3, освен за сликите кои што уште не ти се кеширани.
Постпроцесирање им правиме, поминуваат низ SAM модел и FFMPEG скрипти. Мора да ги прочиташ цели и да ги вратиш процесираните назад, мора да се и чува оригиналот, и се што е output да запишеш назад во s3 и во база.
 
Z

zmej gorjanin

Гостин
Постпроцесирање им правиме, поминуваат низ SAM модел и FFMPEG скрипти. Мора да ги прочиташ цели и да ги вратиш процесираните назад, мора да се и чува оригиналот, и се што е output да запишеш назад во s3 и во база.
Ахам, тогаш кеш не ти брка работа ако на секој реквест запишуваш, јас мислев за земање ти се. Друго решение ти е да не користиш S3, туку да ги хостирате на сопствен сервер и комуникацијата да се одвива преку алатки ко RabbitMQ или Kafka и да праќаш блоб од сликата евентуално до серверот, а да враќаш линк од сликата.

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

Lester Freamon

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

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

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

zmej gorjanin

Гостин
1704702260609.png

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

Go for the win :roker:

Од interpreted languages (PHP, JS, Python) PHP ги јаде и JS и Python. Позитивно сум изненаден од Пајтон, мислев ќе биде најспор и дека ќе биде помалку memory efficient од PHP. Ме чуди само како TS е побрз од JS? Иначе бенчмарк е фибоначи алгоритам.
 
Член од
15 ноември 2013
Мислења
1.536
Поени од реакции
2.658
Прегледај го приврзокот 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
Мислења
16.238
Поени од реакции
36.513
Прегледај го приврзокот 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.536
Поени од реакции
2.658
Може, ако js кодот е неоптимизиран, инаку си 100% во право :)
Ако не е исти кодот (алгоритамот) тогаш бенчмаркот е срање. После со сликава има други проблеми, има runtume колона но TS не постои во runtime, барем јас не знам за runtimе околина што знае да работи со TS, сите енџини на прелистувачите, node, deno работат само со JS, па затоа ако работиш со TS ти треба и transpiler што ќе ти го конвертира кодот во JS па така конвертираниот JS код од TS е или идентичен или поголем, пример за секој енум генерира дополнителни функции. Компалјерите дополнителен overhead додаваат, има open source проекти кои се switchnaa од TS на JS поради тој проблем (Svelte на пример).
 
Z

zmej gorjanin

Гостин
Немам пристап до кодот, само сликава со бенчмарковиве ми излезе на Linkedin. Инаку и мене ме зачуди тоа со ТС, пошто runtime во TS e уствари compile/transpile time. Веројатно се мисли на compile+runtime што е ОК, што значи дека TS генерира пооптимален код него ли некој да земе да напише vanila js.

еве го линкот

 

Amaterasu

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

Kajgana Shop

На врв Bottom