Sitter här och jobbar med en liten server som skall ta emot olika kommandon och utföra olika uppgifter. Servern är skriven i C++ och fungerar som den skall och jag har ett protokol för att skicka meddelanden. Dock är jag inte riktigt nöjd med detta, det är ju egentligen inte annat än textsträngar som skickas i klartext :e .
Nu skulle jag vilja komprimera meddelandena för att minska trafiken på nätverket och på så vis snabba upp det hela lite grann. nätverket är imellanåt väldigt belastat så ju mindre man skickar och tar emot ju bättre.
Jag kan inget om komprimering så alla tips som kan ges är bra.
Jag förstår nog inte rikktigt problematiken.
Det är ju väldigt lite data som skickas med den typen av protokoll.
Det är ju en byte per tecken plus overhead som OS lägger på.
De flesat saker som jag har varit med om på sistone har man istället valt att öka overhead och göra ineffektivare protokoll på applikationsnivå. XML baserad information. Där skickas en massa tecken som inte tillför något. Det man vinner är ju att det blirr lättare t.ex läsa loggar. Det blir även lättare att hanter versionskonflikter när någon startat en gammal klient. Det gör inget man plockar den info man är intresserad av osv.
Men som sagt klarar inte nätet av ett så pass slimmat enkelt textprotokoll så känns det inte som det är det som är problemet. Det är klart du kan klippa bort en och annan byte och använda andra kontrolltecken, men det skall inte behövas.
Tja, du kan ju enkelt komprimera på egen hand (vad det nu skulle vara bra för) genom att byta ut data som har hög frekvens mot symboler. Fast vad det skulle göra för reell skillnad är antagligen endast markant. Eventuella flaskhalsar ligger nog snarare i nätverksprotokellet du använder och/eller i din applikation.
Bra synpunkter. Tror att det snarare är som du säger PeW, problemet ligger i ett bibliotek som jag använder eller i min applikation. Skall ta och gå igenom den ordentligt och se vad som kan göra bättre. Säkert en massa som vanligt.
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e