Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Festplatte defragmentieren (https://www.delphipraxis.net/179167-festplatte-defragmentieren.html)

DelphiProgrammer 18. Feb 2014 11:38

Festplatte defragmentieren
 
Hallo

ich hab mir mal wieder was ausgedacht:

Ich will mit Delphi meine Festplatte defragmentieren.
Geht das, wenn ja wie und gibt es dafür auch eine (kostenlose) Komponente?

Aphton 18. Feb 2014 12:00

AW: Festplatte defragmentieren
 
Hihi, so "einfach" ist das nicht, dass man mal schnell ne Komponente aufs Formular zieht und dann auf Komponente.starteDefragmentierung() aufruft..

Zuerst einmal musst du rausfinden, welches Dateisystem (NFTS/FAT12/FAT16/FAT32/EXT/EXT2..4/....) auf der Festplatte, die zu defragmentieren ist, läuft. Dann musst du dich da erstmal reinarbeiten - du musst wissen, wie alles organisiert ist (Fragmente, Speicherblöcke, Headerdaten usw. usf.).
Anschließend musst du Objekte finden, die aus mehreren Fragmenten besteht, diese dann letzendlich zu einem einzigen großen Fragment zusammenfügen.. Dazu gibts auch verschiedene Möglichkeiten (siehe Wikipedia).

Ich weiß nicht, inwiefern nicht betriebssystemeigene Anwendungen bei laufendem Betrieb eine Defragmentierung durchführen können.. Ganz sicher gehts, wenn du eine externe Platte defragmentieren willst, da dieser ja nicht grad gebraucht wird und somit nicht "läuft".

Deine Frage ist übrigens auch nicht klar - willst du den Prozess der Defragmentierung selber programmieren oder willst du einfach die systemeigene Defragmentierung automatisieren indem du es in deiner Anwendung ausführst? Zweiteres ist definitv einfacher und sollte eig. per Recherche leicht zu finden sein.. Ich gehe aber vom ersteren aus daher die lange Erklärung.

Edit: Am besten ist es natürlich, sich sein eigenes Dateisystem auszudenken. Das Projekt kann von einfach bis zu höchstkomplex gestaltet sein - einfach im Sinne von keine Sicherheitsvorkehrungen wie z.B. Journaling oder Locking..
Solch ein Projekt habe ich damals zeitgleich mit olee programmiert. Da er seins hier veröffentlich hat und unsere Projekte mehr oder weniger ident sind, habe ichs nicht getan..
Schaus dir mal an!

jaenicke 18. Feb 2014 12:33

AW: Festplatte defragmentieren
 
Hier ist der Einstieg in die Defragmentation API von Microsoft:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Die meisten Tools, die heute auf dem Markt erhältlich sind, nutzen diese. Es gibt nur wenige, die wirklich selbst die komplette Defragmentierung durchführen (wenn überhaupt noch, ich kenne keins).

Valle 18. Feb 2014 12:34

AW: Festplatte defragmentieren
 
Sind die Zeiten, in denen mal seine Festplatte defragmentieren muss nicht lange vorbei? :gruebel:

Das letzte mal dass ich eine Festplatte defragmentiert habe ist bestimmt 10 Jahre her. Jedes halbwegs gescheite Dateisystem heutzutage sollte wohl selbst defragmentierend sein. Zumindest unter Linux ist das lange schon kein Problem mehr.

Macht man das unter Windows echt immer noch? (gemeint ist natürlich NTFS, bzw. zumindest nicht FAT)

hathor 18. Feb 2014 12:57

AW: Festplatte defragmentieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei WINDOWS 8 heisst der Dienst Laufwerke optimieren.
Der Service heisst defragsvc und wird 1x /Woche automatisch gestartet, wenn er nicht aus dem Taskplanner/Aufgabenplanung gelöscht wird.
Bei WINDOWS 7 ist das auch so.
Manuell kann man DFRGUI.EXE starten. -> siehe Anhang.
-
Auch Dateisysteme unter Linux weisen Fragmentierung auf, wenn auch nicht in einem solchen Maßstab (und mit solchen Auswirkungen), wie z.B. unter Windows mit FAT32 oder NTFS als Dateisystem.

Der geringen Grad der Fragmentierung ist primär dadurch bedingt, dass Dateisysteme wie z.B. ext3 und insbesondere ext4 ausgeklügelte Schreibstrategien und Datenträgeraufteilungen verwenden, um Fragmentierung zu vermeiden. Dazu gehören u.a. das Cachen von Schreibvorgängen und das Vorbelegen von Blöcken auf dem Datenträger. Trotzdem ist Fragmentierung nicht ausgeschlossen, besonders nicht auf Systemen mit sehr vielen Schreib- und Löschvorgängen wie z.B. Datenserver. Sehr anfällig sind auch volle Dateisysteme, da unter Umständen gar keine zusammenhängende Lücke vorhanden ist, in den eine neue Datei vollständig hineinpasst.

Allerdings sei auch gesagt, dass ein Fragment-freies Dateisystem nicht zwingend die optimale Schreib-/Lesegeschwindigkeit bringt. Oft wird eine (große) Datei nicht komplett linear eingelesen, sondern der Vorgang wird unterbrochen, weil z.B. das Betriebssystem eine andere Datei "zwischendurch" anfordert. In solchen Fällen ist es (fast) egal, ob eine Datei in mehrere Teile geteilt ist, da durch die Unterbrechung der Schreib-/Lesekopf ohnehin neu positioniert werden muss.

http://wiki.ubuntuusers.de/Defragmentierung

himitsu 18. Feb 2014 13:26

AW: Festplatte defragmentieren
 
Zitat:

Zitat von Valle (Beitrag 1248344)
Sind die Zeiten, in denen mal seine Festplatte defragmentieren muss nicht lange vorbei? :gruebel:

Defragmentieren hat nicht nur was mit "Tempo" zu tun.

Auch in Bezug auf eine eventuelle Datenrettung sind Fragmentierte Dateien wesentlich besser, da man fragmentierte Dateien fast garnicht mehr zusammen bekommt, wenn die nötigen Zusammengehörigkeitsinfos (ala VolumeBitmap) defekt sind.



Aber bei SSDs und anderen dynmisch adressierten Speichermedien bringt das natürlich auch nicht viel.

hathor 18. Feb 2014 13:47

AW: Festplatte defragmentieren
 
Für SSD ist Defragmentierung überflüssig und ausserdem verboten.

BUG 18. Feb 2014 14:25

AW: Festplatte defragmentieren
 
Zitat:

Zitat von himitsu (Beitrag 1248350)
Aber bei SSDs und anderen dynmisch adressierten Speichermedien bringt das natürlich auch nicht viel.

Der ist gut ... gerade bei Flashspeichern ist es schädlich zu defragmentieren. Und solche Speicher (und Hybriden) werden sicher noch zunehmen.
Was die Datensicherheit betrifft, sollte man lieber die Zeit in ein Backup stecken.

Popov 18. Feb 2014 14:36

AW: Festplatte defragmentieren
 
Nun ja, die Frage nach dem Sinn von Defragmentierungsprogrammen heutzutage darf man sich ruhig stellen. Da wäre zuerst das Windows das im Grunde permanent irgendwie auf die Platte zugreift. Schon alleine die Registry wird permanent geändert. Und dann noch die zig Logs und sonstiges an das man gar nicht denkt. Defragmentierung war unter DOS sinnvoll, Windows macht alles durcheinander. Im Grunde ein Partition für das OS und eines für die Daten. Dann kann man gelegentlich die Daten defragmentieren (wenn man große Daten, wie z. B. Videos hat).

himitsu 18. Feb 2014 14:53

AW: Festplatte defragmentieren
 
SSDs halten schon ganz schön viele Schreibzyklen aus ... selbst mit Defragmentieren sollten die noch paar Jahrzehnte durchhalten.

Und wenn man mal einen DEFRAG-Befehl (so wie beim TRIM) einführt ... soooooo schnell hätte man dann noch nie defragmentiert.


Viele kleine defragmentierte Blöcke, bei häufig bearbeiteten Dateien, sind genauso schädlich.
Da ist es nach dem Defragmentieren besser, wenn dann wieder "komplette" Blöcke zusammenhängend geschrieben werden können.
-> Solange die Sektor-/Clustergröße nicht den Speicherblöcken der SSD entsprechen.

Wobei es dort ja reicht, wenn nur die nötigen Dateien neu angeordnet (defragmentiert) werden und es da egal ist, wo die auf dem Datenträger landen, denn Alles an den Anfang ist bei SSD ja vollkommen nutzlos.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.
Seite 1 von 2  1 2      

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