AGB  ·  Datenschutz  ·  Impressum  







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

Bringt ein eigener Icon-Cache was?

Ein Thema von Popov · begonnen am 14. Jan 2013 · letzter Beitrag vom 15. Jan 2013
Antwort Antwort
Seite 1 von 2  1 2      
Popov
(Gast)

n/a Beiträge
 
#1

Bringt ein eigener Icon-Cache was?

  Alt 14. Jan 2013, 21:32
Ich gehe gerade ein kleines Projekt an, in dem ich, aber das ist nur ein Teil des Projekts, etwas in der Art eines Dateimanagers programmiere. Allerdings ist hier die Zeit ein kritischer Faktor. Bevor ich mich aber paar Tage in die falsche Richtung begebe und ein Icon-Cache unnötig programmiere, vielleicht hat bereits einer Erfahrungen in der Richtung.

Ein kleines Nadelöhr bei Dateimanagern sind immer die Icons. Die müssen aus den Dateien extrahiert werden, und das kostet Zeit. Selbst der Explorer trickst da etwas. Nun stellt sich mir die Frage was schneller ist: die Icons immer wieder aufs neue aus der Datei extrahiert oder ein eigener Icon-Cache? Oder kommt beides aufs gleiche raus? Mit Cache meine ich kein Cache im RAM, sondern z. B. die letzten 2000 Icons auf der Festplatte zwischen speichern, so dass die nicht immer wieder extrahiert werden müssen.

Hat einer Erfahrungen mit einem eigenen Icon-Cache?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bringt ein eigener Icon-Cache was?

  Alt 14. Jan 2013, 22:32
Lade das Icon erst wenn die Datei in deiner Listview angezeigt wird. Dann hast du zum Programmstart/Verzeichniswechsel evtl. 50 Icons die du laden musst.

Eigener Cache würde ich vermeiden. MS selbst bringt es ja nach 13 Jahren nicht hin die Fehler in ihren Icon-Caches zu eliminieren (Win7 hat jedenfalls die Problem noch, Win8 weiß ich nicht).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Bringt ein eigener Icon-Cache was?

  Alt 14. Jan 2013, 22:55
Was genau meinst du mit Icons? Eigentlich sind fast nur bei Exe-Dateien die Icons in der Datei selbst gespeichert, alle anderen sind systemweit pro Dateiendung festgelegt. Oder meinst du auch Vorschaubilder, z.B. bei Fotos oder Videos?

Falls es um ersteres geht, ist es doch sicher möglich, alle auf einen Rutsch in den RAM zu laden, dann sollte das schnell gehen.

Falls es um letzteres geht: Man könnte da eine Datenbank anlegen, in der die Vorschaubilder zusammen mit dem letzten Änderungsdatum der Datei gespeichert werden. Beim Anzeigen einer Dateiliste würde ich dann zunächst bei den Dateien, die anscheinend nicht verändert wurden, das Vorschaubild aus dem Cache anzeigen, und bei den veränderten Dateien einen Platzhalter. Dann würde ich alle Vorschaubilder asynchron nachladen, wobei die geänderten Dateien natürlich höhere Priorität haben. Und natürlich dabei den Cache aktualisieren.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Bringt ein eigener Icon-Cache was?

  Alt 14. Jan 2013, 23:12
Mhm, ich könnte mir vorstellen, dass unter bestimmten Voraussetzungen (komplizierte Aufarbeitung der Icons, ...) ein Cache schon nützlich sein kann. Andererseits könnte es knifflig sein, eine gute Caching-Strategie zu entwickeln.

An deiner Stelle würde ich das Laden der Icons so kapseln, das du später "einfach" Caching einfügen kannst.
Dann kannst du erstmal ausprobieren, ob es überhaupt nötig ist.

Vielleicht ist es in dem Zusammenhang auch sinnvoll, sich mal die Shell-Interfaces (>=Vista) oder thumb.db (<Vista) anzugucken.


IMHO sollte das Laden der Icons wenn möglich asynchron erfolgen, damit sich das UI nicht zäh anfühlt.

Disclaimer: Keine praktische Erfahrung mit Dateimanagern oder den Shell-Interfaces.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
dunningkruger

Registriert seit: 25. Mai 2012
59 Beiträge
 
#5

AW: Bringt ein eigener Icon-Cache was?

  Alt 15. Jan 2013, 00:49
Nette Idee, der eigene Icon-Cache.

Statt Winzip steigt der Anwender um auf 7zip...

Den eigenen Icon-Cache wirst Du zwangsweise mit dem System-Icon-Cache synchronisieren müssen, falls Dein Dateimanager nicht die falschen Symbole (Winzip statt 7zip) anzeigen soll, oder?

Also eher eine Schnapsidee (prost-Smiley nicht gefunden)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bringt ein eigener Icon-Cache was?

  Alt 15. Jan 2013, 05:05
MS selbst bringt es ja nach 13 Jahren nicht hin die Fehler in ihren Icon-Caches zu eliminieren (Win7 hat jedenfalls die Problem noch, Win8 weiß ich nicht).
Ich würde das nicht wirklich als Fehler einstufen. Exe-Dateien ändern nun einmal auf 99,99% der PCs nicht plötzlich das Icon. Und nur wegen Entwicklungs-PCs die Arbeitsgeschwindigkeit aller PCs im Windows Explorer zu reduzieren (denn die Icons zu prüfen kann bei vielen .exe Dateien im Ordner ja schonmal etwas dauern), würde ich zumindest nicht wollen. Ich weiß ja wie ich das Problem bei mir korrigiere, wenn es denn mal sichtbar wird.

Aber ja: Der Effekt tritt auch bei Windows 8 so auf.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Bringt ein eigener Icon-Cache was?

  Alt 15. Jan 2013, 06:31
Es wäre doch kein Problem, den Icons in einem Cache eine begrenzte Lebensdauer mitzugeben, z.B. 10 Minuten. Und flüssig arbeiten lässt sich damit allemal.
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Bringt ein eigener Icon-Cache was?

  Alt 15. Jan 2013, 06:54
Ich würde die Icons im Cache speichern. Das hat den Vorteil, dass der Anwender beim nächsten Aufruf von dem Ordner schnell alle Symbole sieht. Bleibt der Anwender in diesen Ordner, kannst du im Hintergrund locker die Icons auf Änderungen überprüfen und dann eventuelle Änderungen im Listview und im Cache ändern. Vorteil: Das Arbeiten mit deinem Programm fühlt sich flüssig an und für Details braucht auch der Anwender seine Zeit und in der Zeit hat dein Programm dann schon die Änderungen erkannt.

Klickt der Anwender nur schnell durch, ist es egal - dann sieht er die eventuell falschen Symbole nur kurz, wenn er sie denn überhaupt wahrnimmt. Dann "scannt" er das Listview sicherlich eh nur nach Ordnersymbolen. Aber die kurz wahrgenommene gesamte Optik stimmt dann eben, da zu jedem Dateinamen ein Symbol angezeigt werden kann.

Vielleicht im Iconcache das Symbol mit dem Dateidatum und/oder Hash speichern. So muss man nicht blind alle Symbole extrahieren, sondern nur bei denen, wo sich die Datei in so einer abgespeicherten Eigenschaft unterscheidet.
Thomas
Besucht doch mal http://www.hitziger.net

Geändert von hitzi (15. Jan 2013 um 07:01 Uhr)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
675 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Bringt ein eigener Icon-Cache was?

  Alt 15. Jan 2013, 07:13
Klares Pro Iconcache hier.

Nicht jeder Zugriff eines Dateimanagers geschieht ja auf der lokalen Platte. Über's Netzwerk wird das Icon-Auslesen schon langsamer, nimmt man dann noch ein einfaches NAS, wie es langsam erst ausstirbt, hat man nur noch 5 MB/s. Oder jemand greift auf Dateien zuhause zu - jede Fritz!Box bringt heute schon ein VPN, das es klickeinfach macht, über ne DSL-Leitung auf die Windows-Freigabe zuhause zuzugreifen. Muss man da auf Icons warten, dauert das gefühlt ewig.

Wenn Du Angst hast, dass der Cache zu groß wird, könntest Du das auf Partitionen <> DT_FIXED limitieren (zwei parallele Methoden zu warten würde mir allerdings nicht zusagen). Und vor allem nur die Icons der für Dich relevanten Größen cachen (ein komplettes Icon mit Auflösungen bis zu 128x128 hat auch schonmal 100 KB).

Total Commander hat da übrigens diverse Einstellungen, z.B. keine Icons auf Diskettenlaufwerken und/oder Netzwerklaufwerken anzuzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Bringt ein eigener Icon-Cache was?

  Alt 15. Jan 2013, 07:24
Ich würde das nicht wirklich als Fehler einstufen. Exe-Dateien ändern nun einmal auf 99,99% der PCs nicht plötzlich das Icon. Und nur wegen Entwicklungs-PCs die Arbeitsgeschwindigkeit aller PCs im Windows Explorer zu reduzieren (denn die Icons zu prüfen kann bei vielen .exe Dateien im Ordner ja schonmal etwas dauern), würde ich zumindest nicht wollen. Ich weiß ja wie ich das Problem bei mir korrigiere, wenn es denn mal sichtbar wird.
Es geht auch um Programme die niemals per Compilierung ein neues Icon bekommen haben. Diese bekommen auch mal neue (falsche) Icons verpasst (welche dann wieder eine Zeit lang "halten").
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:08 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