Hat hier jemand Erfahrung mit Stackless Python (wiki)
Zum Beispiel EVE Online verwendet stackless Python für die Game-Logik ("for all game feature code"), was ich schon irgendwie beeindruckend finde
Hat hier jemand Erfahrung mit Stackless Python (wiki)
Zum Beispiel EVE Online verwendet stackless Python für die Game-Logik ("for all game feature code"), was ich schon irgendwie beeindruckend finde
Stackless Python? Schau mal ob du hier fündig wirst!
Hallo,
was meinst du mit "Erfahrung" bzw. was hast du ggf. mit Stackless vor?b Ist es ist halt (von mehreren) Python-Implementierungen, die kompatibel zur Referenzimplementierung CPython ist.
Genutzt habe ich noch nicht, weil ich keine Anwendung habe, die die massive Parallelität / Nebenläufigkeit von Stackless Python sinnvoll nutzen könnte.
Und wenn würde ich vermutlich erst mal CPython + gevent nutzen, wenn ich so was bräuchte. Oder, je nach Anwendungsfall, ggf. asyncio
Gruß, noisefloor
Ich überlege das für mein RoPi Projekt einzusetzen - wenn es bei EVE-Online zum Einsatz kommt scheint die Performance ja besser zu sein als mit dem Standard-Python
Pperformanceeinbußen kommen in erster Linie durch schlechten bis sehr schlechten Code.
edit:
ich bezweifle, dass dein Projekt hunderttausende Threads braucht.
Hallo,
EVE Online profitiert IMHO von Stackless, weil es die X hundert / tausend Verbindung durch die "leichtgewichtigen" Threads handeln kann, was mit "normalen" Threads nicht bzw nur mit schlechter Performance möglich ist. In Python Wiki (https://wiki.python.org/moin/StacklessPython) und der Startseite des Stackless Wiki (https://bitbucket.org/stackless-dev/stackless/wiki/Home) ist es IMHO gut erklärt.
Bei (d)eine Robi-Projekt sehe ich da jetzt keinen wirklichen Vorteil, weil man da nicht so viele Threads braucht. Wenn du denkst, dass irgendwelche Rechnungen zu langsam laufen, würde ich PyPy nutzen. Wenn du glaubst, dass bestimmte Programmteile zu lange auf I/O warten, dann wäre asycnio einen Blick wert
Hast du ein bestimmtes "Problem", was du lösen möchtest?
Gruß, noisefloor
Nein, Performanceprobleme habe ich in der aktuellen Entwicklungsphase (noch) nicht - der "The Brain"-PiZeroW ist aktuell nur zu ~50% ausgelastet. Aber wenn das später dann doch nicht reichen sollte wärs ärgerlich dann erst zu wechseln
Ich war letztlich nur überrascht dass ein so großes MMO Spiel wie EVE auf Python setzt
Hallo,
bei mir ist es umgekehrt - ich keine EVE Online nur, weil ich mal was über Stackless Python gelesen hatte und es da erwähnt wurde
Außerhalb von Eve Online scheint sich Stackless auch nicht wirklich großer Beliebtheit zu erfreuen...
Habe mal ein wenig gelesen - IMHO gibt es relativ wenig Gründe, dass zu nutzen - außer dem oben genannten. gevent bietet ähnliches, läuft aber mit CPython. Stackless muss man sich wohl selber kompilieren.
Wenn du das "Gefühl" hast, dass Tornado dich ausbremst -> Sanic sollte schneller sein und ist kompatibel mit asyncio.
Wenn du einen der Ansätze (inkl. Stackless) verfolgen solltest, solltest du IMHO früh darauf umsteigen. Von "normalem" Code zu Greenlets, asyncio u.ä. zu wechseln ist IMHO ein ziemlich Aufwand, weil du viel neu / anders schreiben musst.
Gruß, noisefloor
Nachtrag: PyPy hat wohl auch Features von Stackless, in Form von Continulets und darauf aufsetzenden Greenlets. Link: http://doc.pypy.org/en/latest/stackless.html War mit bis dato aber auch völlig unbekannt.
Gruß, noisefloor
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!