Schnelleres Kopieren

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Concatenate2.om
PROCEDURE Copy(in, out: Streams.Stream) : BOOLEAN;
   (* copy all bytes from in to out;
      return FALSE in case of errors
   *)
   VAR
      ch: CHAR;
BEGIN
   RETURN Streams.Copy(in, out, -1)
END Copy;

*Das Streams-Modul bietet hier die Prozedur Copy an, mit der eine bestimmte Anzahl von Bytes oder alle (bei Angabe von -1) von einer Verbindung zur anderen kopiert werden.
 
*Diese Prozedur liest und schreibt in größeren Quantitäten (8k).
 
*Das führt zu einer deutlichen Verbesserung:
 
thales$ time Concatenate 10m >10m.2

real    0m8.48s
user    0m5.62s
sys     0m0.22s
thales$ time Concatenate2 10m >10m.2

real    0m1.72s
user    0m1.32s
sys     0m0.23s
thales$

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005