Portál AbcLinuxu, 2. září 2026 22:24


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
vencour avatar 24.8. 10:11 vencour | skóre: 57 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Odpovědět | Sbalit | Link | Blokovat | Admin
🐧 +1
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
Bystroushaak avatar 24.8. 15:13 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Odpovědět | Sbalit | Link | Blokovat | Admin
Mi to připomíná Stackless a jak dřív fungoval async přes Twisted.

Přijde mi ale že hlavní problém jsou ty různé barvy, což tak nějak plyne z toho že nejde pustit jedno jako druhé, kde je správná otázka; proč ne? A co by se muselo udělat aby to šlo? Jakože zkompilovat alt verzi sync bytekódu kde nasereš await / async všude kde to jde?
blog.rfox.eu | Lessons learned from games
mirec avatar 24.8. 16:17 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Myšlienka je nehanebne vykradnutá z Java virtual threads. Nerád to priznávam, ale Java predsalen niečo urobila dobre. Alebo som už starý a väčšina mozgových buniek mi už odumrela a preto tajne obdivujem Javu. Videl som snahu o await anywhere, čo by problém do istej miery riešilo - cpython-await-anywhere. No a nakoniec existuje ešte celá veľká diskusia o virtual threads.

Tie farby sú hlavne v Djagngo problém a nadávam na to od rána do večera. Transakcie s tým nefungujú. Všetky async db funkcie sú implementované tak, že sa spúšťajú synchrónne v jednom vlákne s neskutočnou réžiou jedného async volania okolo 1ms. Nie je to rýchlejšie ani o chlp a všetko okolo je proste nepodarený vtip. Stackless, twisted aj gevent poznám. Geventu som tak trocha držal palce, že nektoré myšlienky by mohli byť zapracované (ale nie ako monkey patch).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bystroushaak avatar 24.8. 18:38 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Tie farby sú hlavne v Djagngo problém a nadávam na to od rána do večera. Transakcie s tým nefungujú. Všetky async db funkcie sú implementované tak, že sa spúšťajú synchrónne v jednom vlákne s neskutočnou réžiou jedného async volania okolo 1ms. Nie je to rýchlejšie ani o chlp a všetko okolo je proste nepodarený vtip.
Jo, já vím. Taky mám jeden sync kód kde tohle musím volat pro každý uživatelský požadavek (flask) na grpc service, protože ten tým co píše tu service zveřejňuje jen async balík a je to fakt oser.

U nás jedem všechno sync + mutltithreading / multiprocessing, tak nějak to dělá můj život snažším, i když to má pár nevýhod. Co mě zaráží je kolik lídí v mém okolí často přijde s tím že "pojďme to přepsat na async, bude to lepší" a pak nejsou schopni odpovědět jak.

Lehce unrelated; nedávno někdo posílal https://github.com/Dicklesworthstone/asupersync, to vypadá docela cool.

Ještě mnohem víc unrelated a cool: Tohle doporučuji Computer System Organization: The B5700/B6700 Series, je to docela krátké a překvapivě relevantní i dneska. Čuměl jsem jak moc z toho používáme a byl překvapen jak moc ne, hlavně co se týče paralelizace a synchronizace procesů.
mirec avatar 24.8. 18:59 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Dik za linky, pozriem si.

Nemám kolegov, s ktorými by som preberal takéto technické veci, ale keď vidím v internetových diskusiách ako všetci nadšene tlieskajú nápadom prepíšme to všetko do async tak len krútim hlavou. Ľudia nechápu tomu, čo je kooperatívny multitasking a ako málo sa z toho dá vyťažiť ak práve nerobia náhodou multi user chat s tisícmi aktívnych websocket spojení, lenže to je niečo dosť špecifické.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
RealJ avatar 24.8. 18:46 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
ja Java neobdivuji tajne, ja kdykoliv mam napsat neco vetsiho nez Alesove 3 skripty tak volim Java. Funguje to vicemene vsude na intelu, armu, atd., programovani pro vice cpu/cores je ve srovnani s jinymi jazyky snadne, ... ja doted nejak nepobral proc lidi nad java remcaj, prijde mi to jako vykriky o tom jak je heterosexualita mrtva a musis bejt minimalne cernej gay aby jsi mohl nekde pracovat...
mirec avatar 24.8. 18:54 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

V dobe AI aj súhlasím, že Java je dobrá. V dobe pred AI som silne preferoval jazyky, ktoré umožňujú jednoducho špinavým spôsobom implementovať veľa na málo riadkoch kódu. Ľahšie sa to píše a hlavne ľahšie sa to číta. Návrhové vzory? Meh. Singleton? Meh, bac niečo do modulu. Ochrana? Meh. Sme dospelí. Až sa budem hrať so zápalkami viem čo sa stane. Teraz väčšina ľudí mávne rukou nad riadkami. Keď niekedy prepisujem 50-riadkový AI python kód na 20 riadkový pripadám si ako dinosaurus. Na rozdiel od samotného jazyka Java mám Java VM veľmi rád a myslím, že je celkom lightweight. Taktiež memory overhead nie je tak hrozný keď si človek uvedomí, že typické C po mallocu a free fragmentuje.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
RealJ avatar 25.8. 21:41 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
V dobe pred AI som silne preferoval jazyky, ktoré umožňujú jednoducho špinavým spôsobom implementovať veľa na málo riadkoch kódu - no ale to java umoznuje. Asi zalezi co implementujes, ja delal veci kolem smart cards (a vse co ma nejakej embeded chip) a tam v java udelas na 2k radcich to co v jinem jazyce budes psat mesice.
Keď niekedy prepisujem 50-riadkový AI python kód na 20 riadkový pripadám si ako dinosaurus - to je zasadni chyba, neprepisuj, dej to agentovi at to prepise a optimalizuje. Ja takhle optimalizoval kod ktery po nekolika verzich delal neco 5 minut, codex ho v nekolika sessions optimalizoval na 0.5s.
mirec avatar 26.8. 15:29 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Dať to agentovi to neviem, lebo neviem, čo je cieľ. Chcem čitateľný krátky nie overengineered kód, ale agent nerozumie. Agent spraví. Ja nerozumiem. Agent ukecaný. Ja nie. Ja priamy. Hack hack done.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
RealJ avatar 27.8. 00:26 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
kdyz nevis co je cil jak to pak prepisujes ty? Obvykle mam cil treba at to bezi rychlejc, nebo at je to min Alesovina... jinak kdyz reknes agentovi svou diagnozu a at se prizpusobi tak to umi taky...
mirec avatar 27.8. 07:14 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Cieľ je aby to vedel zmeniť / opraviť / prečítať človek. Vidím zložitý algoritmus a myslím, že nemusí byť zložitý. Prepíšem ho. Okrem toho väčšinou píšem v pythone takže málo balastu a väčšinou mi ručný zásah zaberie menej času než vysvetľovať čo presne chcem.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
26.8. 18:01 Mirkob
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
...a tam v java udelas na 2k radcich to co v jinem jazyce budes psat mesice.

Tak jiste, protoze vsechnu spinavou pracu nakonec oddre nejaka knihovna v jinem jazyce, nejspis C, nad kterou jen nad vsemi vrstvami pripises jeste jednu v Jave.
Prenositelnost programu v Jave je pak nanejvys takova, jako je prunik vsech tech knihoven na spinavou praci, ktere jsi Javou slepil dohromady, pokud ovsem tech svych 2K radek nenaprasis tak, ze to pobezi jen na Windows, a to jeste jen za uplnku a pokud v Pacifiku nebude motyl mavat kridly.
Proto je Java zlocinna, skodliva, zpusobuje poskozeni mozku a nikdo by ji nemel pouzivat.
xkucf03 avatar 26.8. 19:05 xkucf03 | skóre: 50 | blog: xkucf03
Rozbalit Rozbalit vše Java
s/Java/Python/g
Takhle se právě programuje v Pythonu – výkonný kód je v nativních knihovnách, často nepřenositelný a křehký. A kód v Pythonu je jen vrstva lepidla nad tím. V Javě je naopak běžné implementovat knihovny v čisté Javě. Nativní se používají jen pro takové věci jako OpenGL nebo interakci s hardwarem. Ale i třeba kryptografii nebo síťové protokoly a de/kodéry formátů máš čistě v Javě (tzn. přehlednější a mj. bezpečnější než třeba nativní céčko).
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
26.8. 22:51 Mirkob
Rozbalit Rozbalit vše Re: Java
Takhle se programuje nejen v Pythonu, ale predevsim v Jave, protoze lepit Javou dalsi Javu...Jiste, spousta lidi si mysli, ze dokaze napsat znovu a lepe (navic v Jave, lol) to, co jiz resi nejaka knihovna v Ccku. Vetsina se seredne pletne (protoze Dunning–Kruger).
RealJ avatar 27.8. 00:30 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Java
njn, knihovny v Ccku resi kde co ale taky spoustu veci neresi a pak jsi v situaci kdy ta java umi vice za min casu...
RealJ avatar 27.8. 00:29 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
ja ve spouste veci knihovny nepouzivam protoze me nebavi resit bordel s nima a udrzovat je pak u zivota i kdyz umrou... ja windows moc nepouzivam, mam ho na par virtualech kdyz neco potrebuji odtestovat ale jinak moc ne... ja myslim ze ti java neco udelala, patrne ti vystrilela oblibenou hospodu, nebo tak neco...
24.8. 19:45 Xerces
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Hoši vy jste renegádi! Linuxák a obdivuje Javu. :-) Dělá se mi mdlo při představě v tom něco kódovat. Aplikace, která dotahuje jako závislost JRE je pro mě red flag.
24.8. 20:42 Want
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Ten patla matla Žako není žádný linuxák. Jenom pták.

RealJ avatar 25.8. 21:42 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
presne tak, oznaceni linuxak ti klidne prenecham..
RealJ avatar 25.8. 21:37 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
hele, ja to mel stejne az jsem potreboval resit prenositelnost... to zjistis ze spousta veci v ruznych jazycich je tak nejak prenositelna, ale potrebujes resit spoustu veci kolem. Pokud mas 1-2 architektury tak to nemusis nejak resit, pokud chces resit 10-15 architektur tak podle me aktualne nic snadnejsiho nez java neni. Pokud ale delas v korporatu, tvuj zivot je na windows nebo linux tak ten red flag samozrejme chapu.
25.8. 21:48 luky
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Poslednich 15 let vyvijim a udrzuju kod v C, ktery bezi na 6 ruznejch architecturach a stalo se mi asi 3x, ze jsem musel kod upravovat kvuli prenositelnosti. Jasne, v dobe vzniku javy to bylo jinak, ale dnes by clovek musel vylozene prasit aby v C napsal neprenositelnej kod.
xkucf03 avatar 25.8. 22:46 xkucf03 | skóre: 50 | blog: xkucf03
Rozbalit Rozbalit vše Java, C
Ta multiplatformnost není jediná výhoda. Jde i o paměťovou bezpečnost, objektově orientované programování, generika, anotace atd. Ale chápu, že mezi Javou a C není moc překryv, každé se hodí na něco jiného, takže pokud pro tvoje programy vyhovuje C, nemá cenu ti nabízet Javu.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
25.8. 23:00 luky
Rozbalit Rozbalit vše Re: Java, C
Moje poznamka byla o tom, ze argument lepsi prenositelnosti javy oproti modernimu C je blabol. Jedna z platforem, pro kterou vyvijim, je big-endian mip64, kterej snad nikdy ani javu nemel. OpenJDK podporovalo little-endian a Sun/Oracle port pro mips nikdy nevydal.
RealJ avatar 27.8. 00:35 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Java, C
ja v zasade s tebou souhlasim, Ccko ma skvelou prenositelnost... predpokladam, ze pises pro sitovej hw a tam to dava smysl hlavne kvuli rychlosti...
27.8. 21:53 luky
Rozbalit Rozbalit vše Re: Java, C
Ano, sitarina a trochu rizeni. Kde je potreba vykon, je to v C, kde ne tak v Pythonu (UI a tak).
26.8. 22:50 tom1
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Pro používání async kdekoliv není potřeba ani fork pythonu: https://github.com/tzolkincz/colorblind-async
vlk avatar 24.8. 22:38 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Odpovědět | Sbalit | Link | Blokovat | Admin
select.poll() rulez - stara skola - ziadne farby ani nic, proste to funguje. mam rad jednoduchy jednosluckovy kod nez sa hrabat v asynchronne beziacich funkciach, casto sa v tom clovek dokaze stratit ,-)
You don't exist, Go away !
xkucf03 avatar 25.8. 01:05 xkucf03 | skóre: 50 | blog: xkucf03
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Ještě epoll je dobrý. Jinak souhlas. Dneska je bohužel tendence psát asynchronně a nepřehledně i kód, kde to nemá opodstatnění a reálně to nic nepřináší.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
vlk avatar 25.8. 07:27 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
ano, epoll() linux, alebo kqueue() bsd - dalsie triestenie ktore snad nikdy nepochopim. + select.select() - na tak zasadnej veci sa sa nedokazali dohodnut, kazdy kopiruje ale tuto dolezitu vec linux skopirovat nevedel. a najhorsie je to, ze tuto zakladnu vec vobec nereimplementovali priamo do klasickeho poll() ale musim riesit platformu na ktorej kompilujem alebo pouzivat kniznice ako selectors
You don't exist, Go away !
xkucf03 avatar 25.8. 09:57 xkucf03 | skóre: 50 | blog: xkucf03
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Existuje epoll-shim, který přináší epoll do BSD. Ten epoll je výrazně pohodlnější než surový select.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
30.8. 07:01 jbv
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
select.poll má lineární složitost, takže už je desítky let lepší se mu vyhnout (např. použít epoll). Neschopnost místních "programátorů" mě nepřestává udivovat :-)
vlk avatar 31.8. 13:23 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
klaniam sa vam pan programator! lebo vobec som nikdy nepocul nic o epoll a kqueue
You don't exist, Go away !
dnes 01:16 jbv
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Jasný dědku, nejdřív si vzpomeň cos napsal :-)
select.poll() rulez - stara skola - ziadne farby ani nic, proste to funguje. mam rad jednoduchy jednosluckovy kod nez sa hrabat v asynchronne beziacich funkciach, casto sa v tom clovek dokaze stratit ,-)
Ale beze srandy, chápu, že už to pro tebe neni, tak prosím nenavrhuj jak se to má dělat teď, jo?
25.8. 16:48 luky
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Odpovědět | Sbalit | Link | Blokovat | Admin
Ja jsem asi pred 18 lety naprogramoval PoC aplikaci pres perlovske coro, s tim, ze pokud se architectura osvedci, prepise se to do neceho jineho. Vloni jsem se dozvedel, ze to porad pouzivaj a nikdy to neprepsali :-)

RealJ avatar 27.8. 00:36 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
njn, ja pred 100 lety napsal neco ve foxpro a furt to bezi... no a skladove hospodarstvi v access 2.0 ktere jsem taky jednou napsal pry taky furt bezi... :D
27.8. 07:07 Want
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

A taky ses tu svého času kasal, jak vyděláváš na WordPressu

RealJ avatar 27.8. 23:39 RealJ | skóre: 10
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
si to pletes Alesi, ja psal ze za $1 mesicne WordPress je skvela volba..
28.8. 09:45 Want
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
27.8. 22:08 luky
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Tak ja to uvedl proto, ze to coro funguje vpodstate tak, jak je popsano v blogu.
30.8. 07:10 jbv
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Odpovědět | Sbalit | Link | Blokovat | Admin
Toto jednoduché rozšírenie pythonu prinieslo kooperatívny multitasking aj do starého kódu bez akejkoľvek nutnosti upraviť kód.
Tohle mi přijde jako extrémně optimistické tvrzení. IMHO tenhle přístup obecně povede jen ke zvýšení latencí a bude potřeba celý kód přepsat. Pokud jseš ty, kdo rozhoduje o kontext switchi, tak prostě musíš zajistit, že nesedíš na CPU moc dlouho, jinak brzdíš ostatní. V synchronním kódu to za tebe řeší někdo jiný, ale v async kódu je to na tobě. Proto i když je to otravný, tak dává smysl funkce barvit, protože sémantika je jiná.
mirec avatar 31.8. 15:04 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Tvrdenie nie je optimistické a reálny rozdiel nemusí byť merateľný. Kontrola na úrovni volania nemusí existovať. V momente keď posielam funkciu CooperativeThread môže python urobiť runtime špecializáciu funkcie (1 volania za celý beh programu), ktorý ju špecializuje na stackless / async so sémantikou kódu bez farbenia.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
dnes 01:05 jbv
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru
Já se neptám na implementaci toho runtime co navrhuješ. Ale toho jak se bude chovat reálný kód psaný klienty tvého teoretického API. Napsali program pro sync a teď ho pustí asynchronně. A v tu chvíli se diví, jak se to chová, protože vůbec nepočítali se změnou sémantiky jednotlivých příkazů. Najednou když zavolám 5 IO operací sériově místo paralelně, tak to trvá 100x tak dlouho, protože soupeří o čas s ostatníma špatně napsanýma korutinama. Takhle totiž dopadnou naivní přepisy sync do async. Async programování není o větším výkonu, ale o lepším využití zdrojů. Projeví se to na extrémním high performance nebo v cloudu, kde je typicky i disk je síťový, takže IO je brutálně pomalý (pokud máš lokální disk a pár stovek rps na http, tak snadno můžeš zjistit, že async programování v pythonu vůbec nepotřebuješ).
mirec avatar dnes 12:46 mirec | skóre: 33 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Implementácia async v pythone z alternatívneho vesmíru

Ja som tu nebol ten, kto písal o latencii a výkone. Plne chápem, že async je pre mňa dobrý ak musím držať tisíce otvorených spojení a nemá to nič spoločné s výkonom. Toto mi vážne netreba vysvetľovať. Teraz píšem aplikáciu v async frameworku (FastAPI) a mám chuť niekoho nakopať za ten návrh. Všetko musím farbiť aj keď nikde reálne nedržím spojenia. Pretože niekto rozhodol, že async je lepší. Java s virtual threads to dokázala implementovať a čuduj sa svete nie nie je to 100x pomalšie než 1 sériové vlákno. Ak sa bavíme o výkone tak sa musíme baviť o implementácii, lebo výkon závisí od implementácie. Ak to bude implementované dobre, nebude to 100x pomalšie než 1 sériové vlákno. Rozdiel bude odhadom v jednotkách % oproti natívnom async.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.