Projekt Netzwerklibs-Vergleich
-
[Update am 24.09.09, neue Version/Ergebnisse]
Hi,Das Projekt richtet sich sowohl an Netzwerkunerfahrene als auch an Personen mit Netzwerkerfahrung.
Kurzinfos:
- Es geht um einen direkten Vergleich von verschiedenen Netzwerk-Libs
- unterstützte Libs: RakNet (UDP), ENet(UDP), Zoidcom(UDP), eine Eigenentwicklung (TCP)
- interessante und noch nicht unterstützte Libs: OpenTNL
- Es gibt zwei Testarten (Pingtest und Synctest)
- Dieses Projekt soll Fakten liefern, die bei der Diskussion (UDP oder TCP Lib und vorallem welche Lib) fehlenBeschreibung:
Diese Anwendung soll einen direkten Vergleich verschiedener Netzwerklibs (sowohl UDP als auch TCP) ermöglichen, um so den "Endnutzern" eine auf Fakten und Messdaten gestützte Entscheidungsgrundlage zu liefern.
Es gibt zwei grundlegende Testarten. Bei der einen handelt es sich um einen einfachen Pingtest (Paket einmal hin und wieder zurück). Bei der anderen (dem Synctest) wird eine bestimmte Anzahl an Instanzen von einem Testobjekt erstellt und der Server von Client in bestimmten Abständen dazu aufgefordert zufällige Änderungen an den Instanzen vorzunehmen und diese dann an den Client zu übermitteln. Dies soll das Geschehen einer Server-Client Systems widerspiegeln.
Um sowohl Einblick in die eigentliche Tests zu geben als auch ein einfaches Testen zu ermöglichen, stelle ich einerseits den Source und andererseits schon fertige Anwendungen zur Verfügung.
Der Client wird über die config.lua konfiguriert. Was man alles einstellen kann, sollte in der config.lua stehen (falls was fehlt, bitte Nachricht an mich).
Die Tests soll Aussagen über Performance der Anwendungen, Traffic bzw. Overhead und Latenz. Wichtig ist vorallem, dass sich jeder seine Meinung selbst bilden sollte!Links:
http://networklibsbenc.sourceforge.net/Ein paar Testergebnisse:
http://apps.sourceforge.net/gallery/networklibsbenc/index.phpAufruf:
Fall jemand mit Kenntnissen zu Zoidcom, RakNet, ENet oder anderen Netzwerklibs besitzt und Zeit sowie Interesse hätten, eine der Libs in den Test zu integrieren bzw. besser einzubinden, bitte ich darum, dass sich derjenige bei mir meldet.Für Anmerkungen/Verbesserungsvorschläge bin ich gern zu haben (wobei ich nicht garantiere, dass ich sie verfolgen werde ).
-
asio ist im prinzip nur ein wrapper um sockets (TCP oder UDP), implementiert aber selbst kein protokoll. von daher in so einem test uninteressant, da es nicht wesentlich schneller oder langsamer als eine andere library die dasselbe tut sein *kann*.
-
Ist natürlich auch wieder wahr. Habe das nur erstmal mit aufgenommen, ohne genauer zu wissen, in wiefern die genannten Libs überhaupt in den Bereich der "highlevel" Libs fallen. Daher suche ich ja Leute mit entsprechender Erfahrung (und Zeit ).
-
Update. Gesamtkonzept ein wenig überarbeitet und per Sourceforge.net onlinegestellt. Würde auch gerne ne Rückmeldung bekommen, ob euch sowas überhaupt interessiert, wie intuitiv die Darstellung ist, ob ihr das für aussagekräfig haltet und was ihr von den Ergebnissen haltet (er glaubt, dass ich da rumfälsche, kann gerne den Source laden und nachprüfen/nachmessen).
Die Zusammenfassung befindet sich am Ende der txt Dateien.
-
Update: es gibt neue, durchaus überraschende Testergebnisse http://apps.sourceforge.net/gallery/networklibsbenc/index.php?g2_itemId=36 .
-
was genau ueberrascht dich daran, wenn ich fragen darf
-
Pardon, mir ist deine Antwort/Frage doch glatt entgangen .
Was es daran überraschendes gibt? Meist hört man, dass UDP insbesondere bekannte UDP-libs für zeitkritische Anwendungen besser geeignet wären. Wie man aber an den Testergebnissen sieht, ist die nicht wirklich der Fall.
Es gibt übrigens eine neue Version (0.5), eine neue Präsentation ( http://networklibsbenc.sourceforge.net/ ) und neuen Ergebnissen ( http://sourceforge.net/apps/gallery/networklibsbenc/index.php?g2_itemId=50 ).