Hm ... stimmt ... die Geschwindigkeit wird von meiner Festplatte bei
weitem nicht erreicht. Allerdings steht im Wikipediartikel auch folgendes:
Port Multiplier: Der Port-Multiplier wird mit einem SATA-Port des Rechners verbunden und bietet bis zu 15 Anschlüsse für SATA-Laufwerke. Die Laufwerke teilen sich die verfügbare Übertragungsbandbreite. Wollen zum Beispiel drei Laufwerke gleichzeitig mit 50 MByte/s je Laufwerk übertragen, können diese eine 1,5-Gbit/s-Strecke (150 MByte/s) auslasten.
Im gegensatz zu früher bei IDE braucht man also nur noch so einen
Multiplier kaufen, und schon kann man weitere Festplatten anschließen die
trotzdem die 100% Geschwindigkeit haben. Die meisten Multiplier sind aber
für eSATA gemacht ... ich hab aber tatsächlich auf die Schnelle auch
einen fürs interne gefunden
http://www.ditech.at/artikel/MUSI04/SAT ... xSATA.html
... und laut dem englischen Wikipedia kann das wirklich jeder SATA Anschluss:
Und da das Teil auch RAID unterstützt, könnte man entsprechend die 4
Festplatten so konfigurieren, dass sie die Datenrate bei einem einfachen
Festplattenzugriff komplet ausgenutzt wird, ohne 2000€ aus dem Fenster
zu schmeißen. 4x 100€ Festplatten + 50€ Multiplier = 450€
Code: Alles auswählen
EnableDebugger
#File = "C:\Test.txt" ; -Pfad anpassen
#Time = 20 ;in Sekunden
#BufferLength = 1024 * 1024 * 30
Debug Str(#Time) + " Sekunden"
Define File.i, Timer.i, Time.i, WTime.i, Rate.q, Pos.q, Size.q
Debug "erstelle Zufallsspeicher ..."
*Buffer = AllocateMemory(#BufferLength)
For i = 1 To #BufferLength Step 2
PokeW(*Buffer + i - 1, Random($FFFF))
Next
File = CreateFile(#PB_Any, #File)
FileBuffersSize(File, 0)
Debug "erstelle Datei ..."
NewList Speed()
Time = ElapsedMilliseconds()
Timer = ElapsedMilliseconds()
Repeat
WriteData(File, *Buffer, #BufferLength)
Rate + #BufferLength
If Timer + 1000 < ElapsedMilliseconds()
AddElement(Speed())
Speed() = Rate
Rate = 0
Timer + 1000
EndIf
Until Time + #Time * 1000< ElapsedMilliseconds()
WTime = ElapsedMilliseconds() - Time
CloseFile(File)
Size + Rate
ForEach Speed()
Size + Speed()
Next
ClearList(Speed())
Debug "lese Datei ..."
Rate = 0
File = ReadFile(#PB_Any, #File)
Time = ElapsedMilliseconds()
While Not Eof(File)
Rate + ReadData(File, *Buffer, #BufferLength)
Wend
Time = ElapsedMilliseconds() - Time
CloseFile(File)
If Rate <> Size : Debug "Fehler: gelesende Menge ungleich der geschriebenden! " + StrQ(Rate) + " <> " + StrQ(Size) : EndIf
Debug "Gesamt: " + StrD(Size / 1024 / 1024 / 1024, 2) + " GB"
Debug "Schreiben: " + StrD(Size / 1024 / 1024 * 1000 / WTime, 2) + " MB/s"
Debug "Lesen: " + StrD(Size / 1024 / 1024 * 1000 / Time, 2) + " MB/s"
Debug ""
DeleteFile(#File)
Debug "Datei gelöscht"
Debug "Programm beendet"
Fals jemand seine Geschwindigkeit wissen will
Ich für meinen teil hab aktuell nicht mal 50 MB/s Schreibgeschwindigkeit
und unter 30 MB/s lesen ... aber ich kann bei mir gleichzeitig heftige
Festplattenzugriffe durchführen und per Explorer ne Datei manuel suchen.
Wenn ich das bei dem Rechner bei meinen Eltern gemacht hab ging
garnichts mehr. Naja vermutlich ist dann wohl tatsächlich die andere
Festplatte einfach nur müll
MFG PMV