Post AGMwrQTyZt1zpQsbL6 by brabitom@mastodon.social
(DIR) More posts by brabitom@mastodon.social
(DIR) Post #AGJPtrGErkGGXtN1cm by mig@mastodon.1984.cz
2022-02-09T21:06:06Z
0 likes, 0 repeats
Je tu nějaký pythonista? Dělal jsem benchmark mikroframeworků v Pythonu (FastAPI) a Ruby (Roda). Je to poněkud srovnávání jablek s hruškami, nicméně mě překvapilo, že Ruby je u mě výrazně rychlejší.14904.16 [#/sec] (mean) vs2990.25 [#/sec] (mean) v druhém benchmarku dokonce117.84 [#/sec] (mean)vs6.59 [#/sec] (mean) Potřebuju někoho, kdo by byl schopen optimalizovat kód v Pythonu, případně použít jiný (rychlejší) mikroframework.Dělal jsem taky benchmark samotných algoritmů, které generují nějaké pole/dictionary. Opět Ruby vyšlo rychlejší. Dost mě to překvapuje, čekal jsem opak, zejména když je Python používán v matematice a statistice, kde právě tyhle algoritmy často jsou.https://github.com/mig1984/python-vs-ruby
(DIR) Post #AGLGFZo3G0BTXyy9M8 by brabitom@mastodon.social
2022-02-10T18:02:53Z
0 likes, 0 repeats
@migPython rozhodně nepatří mezi nejrychlejší, když přijde na benchmarky, ale jinak to může být skutečně srovnání jablek s hruškami 🙂. Co konkrétně je cílem?
(DIR) Post #AGLQi1y592ikXUrqhk by mig@mastodon.1984.cz
2022-02-10T20:24:35Z
0 likes, 0 repeats
@brabitom cílem je webové API.. u nás na škole se hodně razí Python, a tak potřebuju argument, proč i jiné jazyky jsou na toto dobré.. a Ruby mám rád, protože se v něm dá velmi rychle prototypovat.. takže vzhledem k tomu API mě zajímá rychlost zpracování krátkých dotazů a jak se to chová při velké konkurenci.. jelikož na API jsou nejlepší mikroframeworky, snažím se porovnat tentýž algoritmus právě v nich.. tudíž to sice je porovnávání jablek s hruškami, neboť každý framework dělá něco navíc - jenže pokud ho mám považovat opravdu za mikro, tak by toho měl dělat navíc co možná nejméně.. například mě zajímá, jak rychle se vygeneruje nějaké pole a udělá z něj JSON.. takový algoritmus je u API velmi běžný a lze ho přesně přepsat do jiného jazyka, tudíž přiblížit jablka těm hruškám.. je mi přitom fuk, že framework umí ještě to a ono, naopak, požaduju od něj jen ten jeden dotaz..vyhovuje mi například Roda, která dělá nezbytné minimum a ostatní funkcionalita se nachází v pluginech.. nejsou v ní žádné automatismy, taková ta "magie", kterou jsou prošpikovány Rails.. (to je ostatně důvod, proč jsem Rails opustil.. navíc se domnívám, že jazyku Ruby teď trochu škodí, protože když se řekne Ruby, vybaví se hned Rails, jako by nic jiného neexistovalo.. a Rails znamenají start aplikace 15 sekund - Mastodon je příkladem :-) (ovšem na Javu pořád nemá :-D ))samozřejmě v praxi rychlost samotného interpreteru není vždy zásadní, protože jestli je něco pomalé, tak často kvůli blbě napsanému kódu nebo že ke zpomalení dochází na databázi nebo že se nic necachuje.. nebo že je to celkově překomplikované..u toho pythonu vs ruby mě spíš zaujalo, že ten rozdíl je tak markantní, když oba jazyky jsou si podobné (a Pythonu se věnuje spousta pozornosti, jelikož je teď poněkud hype)..zatím bych řekl, že ve prospěch Pythonu svědčí spíš to, že ho používá víc lidí, a tudíž existuje víc knihoven..chci ještě tentýž "benchmark" udělat s NodeJS a PHP.. a opět, ta rychlost není vždy zásadní, protože i kdyby PHP bylo o 50% rychlejší než vše ostatní, tak ho opravdu už nechci používat, protože i ten odpor při programování je nutno započítat :-)
(DIR) Post #AGMwrQTyZt1zpQsbL6 by brabitom@mastodon.social
2022-02-11T13:59:33Z
0 likes, 0 repeats
@mig Rozumím. Myslím, že tady na frameworku zas až tolik nezáleží. Pokud by Ti šlo o jednotlivé požadavky, tak to je jiná, do toho pak může vstupovat i způsob, jak Python pracuje s vlákny/procesy, sync/async, ale na tenhle pokus je to asi skoro jedno 🙂 Ano, důležitá je režie, která se může lišit a následně se ztrácí v čase či množství. Tady docela zajímavý článek na téma benchmarku 🙂 https://blog.miguelgrinberg.com/post/ignore-all-web-performance-benchmarks-including-this-one
(DIR) Post #AGN7HvM5PoKyeKSmSO by brabitom@mastodon.social
2022-02-11T14:02:26Z
0 likes, 0 repeats
@mig Ještě jednu poznámku k Pythonu. Je pravda, že je teď docela hype a abych pravdu řekl, jako člověk, který se Pythonu věnuje od doby, kdy tomu tak ještě nebylo, mám pocit, že je to často spíše na škodu.
(DIR) Post #AGN7Hvu7NHYkLsNxVA by mig@mastodon.1984.cz
2022-02-11T15:56:24Z
0 likes, 0 repeats
@brabitom ano, totéž se stalo ruby.. někdy mám pocit, že pak je tlak na přidávání featur, které jsou zbytečné a ve finále způsobují přesný opak toho, co jimi bylo zamýšleno, například snižují čitelnost kódu.. a taky tyhle hype způsobují, že se jeden nástroj začne používat úplně všude, přitom pragmatický přístup říká, používat správný nástroj na správném místě..