Hallo Community,
Ich arbeite ja gerade an HTMLCP nur gefällt mir die Performance nicht so ganz. Ich habe jetzt das erstellen der Assemblies gecached. Das bringt einen performancevorteil von ca 90%. Außerdem habe ich gemessen, dass das empfangen des Requestheaders 0,5s. braucht. Das ist deutlich zu viel. Außerdem finde ich meine Methode ziemlich unsauber:
client.ReceiveBufferSize = 1000;
client.ReceiveTimeout = 10;
List<byte> bytes = new List<byte>();
byte[] buffer = new byte[1000];
try
{
while (client.Receive(buffer) > 0)
{
bytes.AddRange(buffer);
buffer = new byte[10000];
}
}
catch
{
buffer = bytes.ToArray();
}
Nun wollte ich fragen, ob, und wenn ja, wie man das optimieren kann.
Gruß pdelvo
Hallo pdelvo,
Es gibt Socket.Available
. Dort stehen IMHO die Anzahl Bytes die noch nicht gelesen wurden.
mfg.
markus111
Und wie soll ich das deiner meinung nach einbauen. meinst du das in etwa so?
int prev = 0;
while(prev != client.Aviable)
{
prev = client.Aviable;
}
byte[] buffer = new byte[client.Aviable];
...
ICh glaube nicht, dass das sinnvoll ist. Wenn er einmal kein neuer byte angekommen ist, bricht er ab. dann fehlen zeichen im request.
Gruß pdelvo
Ich muss mich entschuldigen. GEnau das funktioniert perfekt!
HIer meine Zeiten(erstes ist empfangen des HEaders, zweites das parsen des htmlcp codes, beides in Sekunden):
0,0005414
0,027501
Vor meinen optimierungen waren es
0,5099871
0,3315015
Gruß pdelvo