AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

File IO mit dem Windows-API?

Ein Thema von HHick123 · begonnen am 4. Jun 2008 · letzter Beitrag vom 30. Jun 2008
Antwort Antwort
Seite 3 von 3     123   
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#21

Re: File IO mit dem Windows-API?

  Alt 12. Jun 2008, 15:25
So, jetzt hab' ich 's ausprobiert: Habe die oben gepostete Klasse TSeqFileStream in die weiter oben gepostete Unit MyFastFile.pas eingebaut (MySeqFastFile.pas) und mit PerformanceCounter (MyDebugTiming.pas) Zeitmessungen bei verschiedenen Filegrößen gemacht (Projekt anbei).

Tja. Leider noch kein Durchbruch....:
  • (2ms) MyFastFile.pas (200 byte)- schreiben
    (2ms) MySeqFastFile.pas (200 byte)- schreiben
    (0ms) MyFastFile.pas (200 byte)- lesen
    (0ms) MySeqFastFile.pas (200 byte)- lesen
    (2ms) MyFastFile.pas (2000 byte)- schreiben
    (3ms) MySeqFastFile.pas (2000 byte)- schreiben
    (0ms) MyFastFile.pas (2000 byte)- lesen
    (0ms) MySeqFastFile.pas (2000 byte)- lesen
    (4ms) MyFastFile.pas (20000 byte)- schreiben
    (4ms) MySeqFastFile.pas (20000 byte)- schreiben
    (0ms) MyFastFile.pas (20000 byte)- lesen
    (1ms) MySeqFastFile.pas (20000 byte)- lesen
    (13ms) MyFastFile.pas (200000 byte)- schreiben
    (13ms) MySeqFastFile.pas (200000 byte)- schreiben
    (3ms) MyFastFile.pas (200000 byte)- lesen
    (6ms) MySeqFastFile.pas (200000 byte)- lesen
    (95ms) MyFastFile.pas (2000000 byte)- schreiben
    (99ms) MySeqFastFile.pas (2000000 byte)- schreiben
    (30ms) MyFastFile.pas (2000000 byte)- lesen
    (53ms) MySeqFastFile.pas (2000000 byte)- lesen
    (1245ms) MyFastFile.pas (20000000 byte)- schreiben
    (965ms) MySeqFastFile.pas (20000000 byte)- schreiben
    (305ms) MyFastFile.pas (20000000 byte)- lesen
    (536ms) MySeqFastFile.pas (20000000 byte)- lesen
    (10259ms) MyFastFile.pas (200000000 byte)- schreiben
    (9314ms) MySeqFastFile.pas (200000000 byte)- schreiben
    (12835ms) MyFastFile.pas (200000000 byte)- lesen
    (19656ms) MySeqFastFile.pas (200000000 byte)- lesen
Meist ist TSeqFileStream sogar etwas langsamer...
Hmm...

Viele Grüße,
Helmut
Angehängte Dateien
Dateityp: dpr speedtest_180.dpr (1,6 KB, 9x aufgerufen)
Dateityp: pas myseqfastfile_182.pas (5,6 KB, 12x aufgerufen)
Dateityp: pas myfastfile_208.pas (4,3 KB, 13x aufgerufen)
Dateityp: pas mydebugtiming_212.pas (1,9 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#22

Re: File IO mit dem Windows-API?

  Alt 12. Jun 2008, 15:39
hast du mal einen Speedtest deiner Festplatte gemacht?

Zitat:
(12835ms) MyFastFile.pas (200000000 byte)- lesen
sind ja auch immerhin schonmal fast 15 MB/s


diese Woche wird es nichts mehr (keine Zeit), aber ich könnte in den nächten 1-2 Wochen man versuchen eine NonBuffered-Variante mit eigener Cache (von TSeqFileStream) zu basteln.
(weiß ja nicht, ob's dir helfen würde, mal in meine alten Hier im Forum suchenFileSplitter-QuellCodes rein zu gucken)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#23

Re: File IO mit dem Windows-API?

  Alt 12. Jun 2008, 17:31
Zitat:
hast du mal einen Speedtest deiner Festplatte gemacht?
Hab' grad einen Test mit hdtune gemacht (screenshot anbei), wobei da die eine Achsenbeschriftung leider fehlt (ich nehme an, es ist die Puffergröße in kB?).
Jedenfalls ab 32 (kB?) aufwärts liegt es etwa bei 35 MB/s bei Filegröße von 256 MB (auch bei 128MB).

Zitat:
Zitat:
(12835ms) MyFastFile.pas (200000000 byte)- lesen
sind ja auch immerhin schonmal fast 15 MB/s
Tja, so schlecht ist es ja eigentlich eh' nicht. Was ich mir gut vorstellen könnte, ist, dass mich die vielen Funktionsaufrufe (für jedes SmallInt einer) ausbremsen.

Zitat:
diese Woche wird es nichts mehr (keine Zeit), aber ich könnte in den nächten 1-2 Wochen man versuchen eine NonBuffered-Variante mit eigener Cache (von TSeqFileStream) zu basteln.
Wär natürlich super, und würd' mich sehr interessieren! Aber mach' Dir keinen Stress..., das Thema hier im Thread eilt eigentlich überhaupt nicht...

Zitat:
(weiß ja nicht, ob's dir helfen würde, mal in meine alten FileSplitter -QuellCodes rein zu gucken)
Werd' ich machen!

Viele Grüße, Helmut
Angehängte Grafiken
Dateityp: bmp hdtune_147.bmp (794,4 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#24

Re: File IO mit dem Windows-API?

  Alt 26. Jun 2008, 19:42
Zitat:
Funktionsaufrufe (für jedes SmallInt einer) ausbremsen.
Die Funktionsaufrufe scheinen es nicht zu sein, was ich dadurch gecheckt hab, dass ich die Funktionalität in der Funktion weggelassen hab' und mit exit gleich wieder zurückgesprungen bin -> geht dann relativ blitzschnell, ausser der Compiler hat das durchschaut und meine Funktion gleich "wegoptimiert", das könnte natürlich sein....
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#25

Re: File IO mit dem Windows-API?

  Alt 27. Jun 2008, 14:33
Zu deinem Prozessmonitortest ganz am Anfang noch eine Anmerkung: Auch wenn du den Filter auf deine Applikation gesetzt hast, kann es durchaus noch sein, dass du Antivirusausgaben in der Liste hast.
Irgendwie wird ein Antivirus deinen Prozess auch hooken denke ich mal.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#26

Re: File IO mit dem Windows-API?

  Alt 30. Jun 2008, 09:46
Zitat:
Auch wenn du den Filter auf deine Applikation gesetzt hast, kann es durchaus noch sein, dass du Antivirusausgaben in der Liste hast.
Tja, kann schon sein, werd' mal bei Gelegenheit probieren, den Virenscanner abzuschalten und dann die Zeit messen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz