AGB  ·  Datenschutz  ·  Impressum  







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

Erste Bytes einer Datei vergleichen?

Ein Thema von Benmik · begonnen am 25. Feb 2017 · letzter Beitrag vom 15. Sep 2020
Antwort Antwort
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#1

AW: Erste Bytes einer Datei vergleichen?

  Alt 28. Feb 2017, 18:49
Vielen Dank euch beiden. TRawFormat(I) war der Punkt. Dass man an den (Integer-)Wert mittels Ord(RawFormat) rankommt, weiß ich mittlerweile; dass man auf ein Glied von TRawFormat so einfach zugreifen kann, weiß ich jetzt.
Das savePos war mir nicht klar, weil ich ja gerade eben von jeder JPG-Datei nur die ersten 20 Bytes auslesen will; aber klar, für einen universelleren Gebrauch ist das nützlich.

Ebenfalls aus (Fortbildungs-)Interesse: Ist es vielleicht eine Illusion zu glauben, man würde mit einer Beschränkung auf die ersten 20 Bytes Zeit sparen? Wäre es bei einer Festplatte schneller, einen Sektor auszulesen? Oder ist das egal, weil sowieso immer ein Sektor ausgelesen wird? Werden bei einer SSD hingegen tatsächlich nur die ersten 20 Bytes gelesen?
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#2

AW: Erste Bytes einer Datei vergleichen?

  Alt 28. Feb 2017, 19:32
Üblicherweise wird eine ganze Zuordnungseinheit gelesen.
Die ist formatabhängig und abhängig von der Grösse des Speichermediums.

Beispiel USB-Stick 8 GB
Zuordnungseinheit:
FAT32: 4096 Bytes
NTFS: 4096 Bytes
exFAT: 32 KBytes
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Erste Bytes einer Datei vergleichen?

  Alt 28. Feb 2017, 19:43
Die von dir genutzen File-APIs verwenden alle den WindowsFileCache.
Somit ist es egal ob 1, 20 oder 200 Byte gelesen werden.

Die Festplatte liefert eh immer nur ganze Sektoren, wodurch also immer mindestens ein Sektor ausgelesen wird.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#4

AW: Erste Bytes einer Datei vergleichen?

  Alt 2. Mär 2017, 19:43
Hab ich mir so ungefähr gedacht. Laut einer Quelle verwendet der File Cache immer "Sections" von 256 KB, das wäre also noch deutlich mehr als ein Festplattensektor. Merk ich mir mal für die Zukunft, dass man eine Datei immer 256 KB weit auslesen kann, wenn man sie überhaupt anfasst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Erste Bytes einer Datei vergleichen?

  Alt 2. Mär 2017, 21:54
Ich hatte bei der WFC mindestens 4K erwartet, da Windows den Arbeistspeicher in 4K-Blöcken verwaltet.
Aber vom Tempo her ist das da fast egal ob ein Vierttel oder Vier.


Zitat:
das wäre also noch deutlich mehr als ein Festplattensektor
Nein.

Die kleinste Sektorgröße ist 512. (bei den meisten HDDs)
Bei großen Terrabyteplatten sind die Sektoren auch schon mal 4K oder mehr.
Bei SSDs sind die realen Speicherblöcke oft sogar mehrere Sektoren groß, da die sich kompatibel ausgeben wollen (512 vorgaukeln, aber eigentlich mehrere Sektoren in einem Speicherbereich liegen haben)

Und in Windows und Co. sind die Clustergrößen oft auch nochmal größer als je ein Sektor, vorallem bei sehr großen Partitionen. (siehe Datenträgerformatierung)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#6

AW: Erste Bytes einer Datei vergleichen?

  Alt 2. Mär 2017, 22:07
Laut einer Quelle verwendet der File Cache immer "Sections" von 256 KB,
Ich hatte bei der WFC mindestens 4K erwartet, da Windows den Arbeistspeicher in 4K-Blöcken verwaltet.
Aber vom Tempo her ist das da fast egal ob ein Vierttel oder Vier.
Ich weiß zwar nicht, woher die 256K kommen, aber das ist doch schon deutlich mehr als 4K.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#7

AW: Erste Bytes einer Datei vergleichen?

  Alt 2. Mär 2017, 22:58
Zitat:
"As depicted by the solid arrows in the previous figure, a 256 KB region of data is read into a 256 KB cache "slot" in system address space when it is first requested by the cache manager during a file read operation."

File Caching
Angehängte Grafiken
Dateityp: png Disk.png (1,3 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#8

AW: Erste Bytes einer Datei vergleichen?

  Alt 3. Mär 2017, 20:42
Meine Quelle:
Zitat:
Sections are stored in the virtual memory instead of logical files. The size of each section is 256 KB.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 05:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz