Ich brauche eine schnelles Serialisierungsformat mit dem ich Daten zwischen zwei Prozessen austauschen kann. Der Datenaustausch dürfte bei einigen 1000 Objekten pro Sekunde liegen... Mir ist das Format ziemlich egal, hauptsache ich brauchs nicht selber schreiben ;-) und es ist schnell.
Ich programmiere mit C# deswegen sollte eigentlich jede .NET-Sprache oder kompilierte lib ok sein.
Es drängt sich allerdings die Frage auf, WIESO Du x-1000 Objekte pro Sekunde zwischen 2 Prozessen hin- und herschicken musst. Das klingt für mich nach einem grundsätzlichen Designfehler.
Das kann man so nicht sagen, da die Aufgabestellung nicht klar umrissen ist. Werden die 1000 Objekte jede Sekunde einmal serialisiert, also 1000 Vorgänge jede Sekunde? Oder gibt es einen Container der die 1000 Objekte aufnimmt und nur dieser serialisert werden muss? Oder kommen 1000 Objekte im Zeitraum einer Sekunde daher? Mir ist diese Aussage zu wenig präzise :-)
Ich sehe das Problem nicht im serialisieren selbst. BinaryFormatter ist sehr schnell. Je größer das Objekt umso größer ist der Vorteil gegenüber XML. Der OP schrieb "zwischen zwei Prozessen". Das klingt für mich nach: "beide Prozesse auf einer Maschine". Dann über TCP zu serialisieren ist IMHO nonsens. Ich würde da Shared Memory verwenden. Schneller geht es nicht, da beide Prozesse auf ein Segment im RAM zugreifen :-) Deshalb meine Aussage: "Das kann man so nicht sagen". Ausserdem ist serialiseren reine CPU-Arbeit. Also in die 1000 Objekte in mehrere Chunks zerlegen und parallelisieren.