AGB  ·  Datenschutz  ·  Impressum  







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

Festplattenzugriffe

Ein Thema von Slavik · begonnen am 20. Nov 2004 · letzter Beitrag vom 24. Nov 2006
Antwort Antwort
Seite 7 von 7   « Erste     567   
Benutzerbild von himitsu
himitsu
Online

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

Re: Festplattenzugriffe

  Alt 6. Sep 2006, 14:17
Es war eine von den ersten 10

Welche Seite es war weiß ich nicht mehr genau, vorallem da ich dort über andere Suchbegriffe hingekommen bin ('s wär jetzt ä bissl viel mir nochmal alle anzusehen, nur um die Eine wiederzufinden)

War mehr als Beispiel ... ich denke mal ganz einfach, daß es darunter massenhaft Seiten gibt, wo die beiden Funktionen auch zusammen verwendet werden

(wenn ich Glück hab, liegt noch eine Kopie der Seite daheim im Papierkorb)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Festplattenzugriffe

  Alt 23. Nov 2006, 17:10
Ähhh ja ... gefunden hatt'sch nichts mehr.
Und Google spuckt irgendwie ständig was anderes aus, nur nicht die Seite mit dem Code.



Zitat von #41:
ReadDirectoryChangesW fails with ERROR_INVALID_PARAMETER when the buffer length is greater
than 64 KB and the application is monitoring a directory over the network. This is due to a packet size
limitation with the underlying file sharing protocols.
Was das angeht, dann wird ja in jedem Code (welchen ich so sah) die 64 KB verwendet, auch wenn sie bei weitem nicht ausgenutzt werden.
Nach meinen Beobachtungen sind wohl 2*SizeOf(FILE_NOTIFY_INFORMATION) [1064 Bytes], also schöne 2 KB völlig ausreichend.

[size=1]PS: 64 KB = Windows-Speicherseite[/size]


FILE_NOTIFY_CHANGE_LAST_ACCESS:
Hierzu nur 'ne Empfhelung, da dieses oftmal in den Codes da oben auftaucht.
Wählt die zu überwachenden Ereignisse mit bedacht,
denn wenn man Dateiänderungen überwachen möchte, dann ist der Lesezugriff irgendeines Programmes uninteressant.


@Luckie, zwecks "Zugriff verweigert" #23:
ich löse das inzwischen so, daß der Überwachungsthread seine Ereignisse nur in ein Array einträgt (incl. Zeit) und erst dann zeitversetzt in einem anderem Thread ausgewertet wird.


Für Langzeitüberwachungen (ohne sofortige Auswertung) sollte es sich über MSDN-Library durchsuchenChange Journals besser lösen lassen, vorallem da hierbei kein Überwachungsprogramm die ganze Zeit mitlaufen muß.
> MSDN-Library durchsuchenChange Journals, MSDN-Library durchsuchenREAD_USN_JOURNAL_DATA



Was diese süße "12-Byte"-Temp-Variable (FNI) angeht, welche hier oftmals verwendet wird ...
wie wäre es, wenn man einfach nur nach PFileNotifiInformation castet?
z.B.: PFileNotifiInformation(P)^.Action
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#63

Re: Festplattenzugriffe

  Alt 24. Nov 2006, 11:18
Zitat von himitsu:
Ähhh ja ... gefunden hatt'sch nichts mehr.
Und Google spuckt irgendwie ständig was anderes aus, nur nicht die Seite mit dem Code.

[size=1]PS: 64 KB = Windows-Speicherseite[/size]
Nope, ne Speicherseite ist praktisch immer vier KiB gross, was Du meinst ist die minimale Datenmenge die ein Lese-/Schreibzugriff transportiert. Egal ob Du nur ein Byte anforderst oder 64 KiB, Windows schaufelt immer 64 KiB rum. Das merkt man ganz enorm wenn man viele kleine Files (bis inkl. vier KiB) in ein Verzeichnis kopiert, diese Files werden bei NTFS direkt in der MFT abgelegt. Für jeden Zugriff werden dann mehrfach 16x soviel Daten bewegt wie notwendig, und das erhöht den Overhead im Vergleich zu großen Files noch zusätzlich zum restlichen Verwaltungsoverhead drastisch, da nach jedem Schreibzugriff 64 KiB statt vier geflushed werden müssen, da es sich um überlappende Zugriffe handelt. (Den Journal-Overhead brauche ich nicht erst zu erwähnen )
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Festplattenzugriffe

  Alt 24. Nov 2006, 17:58
Na ja, Windows verwaltet ja "praktischer" Weise (aus seiner Sicht) den Speicher in 64-KB-Blöcken.

Und da die netten Lese-/Schreibzugriff immer Blockweise durchgeführt werden, ist es nunmal besser sich gleich an diesen Blockgrößen auszurichten.
Und da es ja mehrere Speicher/Zwischenspeicher gibt, welche zusammen arbeiten (hintereinander liegen),
ist es wohl besser sich an den größten Speicherblock zu halten.


Und hab bei mir derzeit 'ne durchschnittliche Blockgröße von maximal 512 KB (min. 128 KB) ausfindig bemacht.

Daten auslesen/ändern auf NTFS und FAT32.


Ist halt ein Wert, welcher wo es durchschnittlich am Schnellsten ging.


PS: das NTFS nicht gerade schnell ist, war mir leider schon bewußt -.-''


[add]
Im Grunde wollte ich ja nur sagen, daß es einfach (im Durchschnitt) besser ist, wenn man sich möglichst am größten Speicherbereich, welcher von an verschiedensten Stellen herumgeschoben wird orientiert, wenn man seinen eigenen Zwischenspeicher dimensioniert.

Sektorgröße, Clustergröße, Festplattencache, WindowsFileCache...

Wobei es da schon genug leicht auszulesende Größen gibt und nicht unbedingt alles ermittelt werden muß.


(Wie NTFS intern funktioniert hab ich noch nicht durch ... hänge derzeit noch an FAT ._.)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 7   « Erste     567   


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 20:43 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