memcpy <-> write
Posted: 15. Apr 2008 0:42
Hallo,
ich muss viele kleinere Stücke (jedes Teil ist ca. 8 bis 20 Byte groß) per "write" auf ein Socket schreiben.
Dabei stellt sich mir die Frage, ab wann es sich lohnt "viele kleine Teile" mit memcpy zu einem großen Stück in einen Buffer zu kopieren um es im Anschluß mit einem einzelnen "write" wegzuschreiben, oder ob es an sich keine Rolle spielt und man auch bedenkenlos sehr viele einzelne "write" Aufrufe mit kleinen Stückchen haben kann?
Wie teuer ist "memcpy" im Verhaeltnis zu einem "write" ?
Und: Steigt die Laufzeit/Kosten von memcpy und write linear mit der Datenmenge, die kopiert bzw. geschrieben wird? Oder verhalten sich die Funktionen evtl. sogar Konstant? O(1) ? O(n) ? O(n^2) ?
Ich hab per google dazu leider wenig hilfreiches gefunden.
Hat jemand Erfahrungen mit dem Thema?
Vielen Dank
ich muss viele kleinere Stücke (jedes Teil ist ca. 8 bis 20 Byte groß) per "write" auf ein Socket schreiben.
Dabei stellt sich mir die Frage, ab wann es sich lohnt "viele kleine Teile" mit memcpy zu einem großen Stück in einen Buffer zu kopieren um es im Anschluß mit einem einzelnen "write" wegzuschreiben, oder ob es an sich keine Rolle spielt und man auch bedenkenlos sehr viele einzelne "write" Aufrufe mit kleinen Stückchen haben kann?
Wie teuer ist "memcpy" im Verhaeltnis zu einem "write" ?
Und: Steigt die Laufzeit/Kosten von memcpy und write linear mit der Datenmenge, die kopiert bzw. geschrieben wird? Oder verhalten sich die Funktionen evtl. sogar Konstant? O(1) ? O(n) ? O(n^2) ?
Ich hab per google dazu leider wenig hilfreiches gefunden.
Hat jemand Erfahrungen mit dem Thema?
Vielen Dank