[LoN]Kamikaze schrieb:
Ich habe einfach den Aufruf mit time gestartet, die erste Zeit ist am relevantesten, das ist die reale dauer
Nö, so kannst du nicht wirklich objektiv benchmarken. Die reale Zeit wird u.a. davon beeinflußt, welche anderen Prozesse auf dem System sich während der Laufzeit von cat/dd wie viel eigene Rechenleistung angefordern. Dementsprechend bleibt für cat/dd mehr oder weniger Rechenleistung übrig und die reale Laufzeit verkürzt oder verlängert sich. Mit der Laufzeit/Performance eines bestimmten Prozesses hat das aber nicht mehr viel zu tun.
[LoN]Kamikaze schrieb:
die 2. und 3. geben die Zeit an die die CPU damit beschäftigt war. Die sollte bei wenigen Sekunden liegen.
Ja, denn die CPU hat mit der Sache auch nicht sonderlich viel zu tun. Der Großteil der Arbeit liegt beim SCSI-/ATA-Controller (außer, man schaltet auf PIO). An dessen Leistungswerte wird man als Userspace-Programm allerdings nicht derart gezielt rankommen, als daß man es einem bestimmten (dem eigenen) Prozeß zuordnen könnte.
Im Grunde ist die Performance auch erstmal zweitrangig. Primär ist wichtig, daß die Daten korrekt ausgelesen werden. Gerade das scheint aber noch ganz und gar nicht klar zu sein:
[LoN]Kamikaze schrieb:
Ich habe jetzt 2 ISOs (eine mit cat, eine mit dd) mit unterschiedlicher md5 Summe gemountet und die md5 Summen der darauf befindlichen Dateien ermittelt. Diese sind identisch mit den Dateien auf der CD.
Das kann schon sein, denn cat(1) arbeitet zeichenweise und dd(1) blockweise. Normalerweise will man blockorientierte Geräte wie Massenspeicher blockweise kopieren. Kopiert man zeichenweise, kann sich die Gesamtgröße eines blockorientierten Datenträgers verändern, auch wenn die Dateien selbst augenscheinlich nicht verändert wurden.
Ich denke ehrlich gesagt nicht, daß dd(1) da was falsch macht, eher liegt der Fehler bei cat(1). Das kannst du ja aber ganz leicht austesten: Mach dir ein ISO-Image mit mkisofs(8), brenne es auf CD und lese die CD dann einmal mit cat(1) und dann mit dd(1) ein. Anschließend vergleiche die MD5-Summen der drei Images. Leider habe ich momentan keine Zeit/Lust, das selbst auszutesten. In diesem Sinne: Freiwillige vor.