← Back to team overview

sslug-teknik team mailing list archive

Re: Overhead ved systemkald (read fra socket)

 

On Wed, 21 Jul 1999, Anders S. Johansen wrote:

> Her nogen en ide om hvor stort overhead ved read fra socket er? Jeg
> leder efter en tommelfingerregel for, hvornår det bedre kan betale sig
> at bruge kopiering af data snarere end read.

Jeg mener at have hørt at et tomt systemkald (som bare skiftede til kernen
og kom tilbage igen) kostede 5 mikrosekunder på en mid-range P2. Den kan
så kopiere noget med 500? MB per sekund. På 5 mikrosekunder kan du så
kopiere 5 * (5 * 10 ^ 8) / 10^6 = 2500 bytes.

Men, se også på readv() som kan indlæse flere usammenhængende områder ind
i eet hug.

Et problem du nok også skal overveje, er at der jo godt kan komme 200
bytes når dine data er 210 bytes. Så kan det blive svært at holde øje med
hvor man nu er kommet til osv.

Lad os sige du kan spare 5 mikrosekunder per blok data ved at bruge den
ene metode frem for den anden -- så skal du modtage 10000 poster per
sekund for at du sparer 5% CPU tid.


--
==============================================================================
Erwin Andreasen   Herlev, Denmark <erw@xxxxxx>          UNIX System Programmer
<URL:http://www.andreasen.org>              <*>         (not speaking for) DDE
==============================================================================




Follow ups

References