[German] - Performanceeinbruch. Lässt sich so ein Filter geschickter machen?

Started by RobiWan, January 06, 2022, 04:59:29 PM

Previous topic - Next topic

RobiWan

Hallo,

ich habe mir diverse Kategorien erstellt die durch Filter befüllt werden. So kann ich z.B sehen welche Fotos ich im einem Jahr in z.B Spanien gemacht habe.
So habe ich in die Formel mir so etwas eingetragen:

"@MetadataTag[datecreated,regexp,^2021:06:09|^2021:06:10|^2021:06:11|^2021:06:12|^2021:06:13|^2021:06:14|^2021:06:15|^2021:06:16]" NOT "@Rating[-1]"

Das funktioniert auch so weit. Ich habe aber damit 2 Effekte die nicht so schön sind. Vermutlich, weil es sich irgendwie anders besser/ performanter lösen lässt.

1. Nach dem Start von IMatch sind diese Kategorien leer. Wenn ich sofort nach dem Start auf einer der angelegten Kategorien klicke, kommt für ~2-3 Minuten Windows blaue Kreis und IMatch ist in der Zeit nicht ansprechbar
2. Wenn ich nach dem Start nichts tue, dann braucht IMatch etwa 10 Minuten, bis die Kategorien mit Inhalt gefüllt sind.


Für mich war dieser Weg erst mal am einfachsten, denn ich fotografiere mit 2 verschiedenen Systemen und die RAW Dateien liegen auch in unterschiedlichen Verzeichnissen (Also Systembezogen). Wenn ich also die Verzeichnisse als Filter nehme, dann muss ich immer die doppelt wählen.

Gruß Robert

thrinn

Wenn du die Fotos eines bestimmten Zeitraumes sehen willst, wäre es aber doch einfacher, die Timeline zu verwenden und dort mehrere Tage zu wählen. Das Ausfiltern der Rejected würde ich über das Filter Panel machen. Oder du bildest ein Event, z.B. "Spanien 2021". Oder eine entsprechende Kategorie. Die Formel mit RegExp ist jedenfalls vom Performance-Aspekt eher ungünstig.
Thorsten
Win 10 / 64, IMatch 2018, IMA

Mario

"There is no free lunch".

Wie viele Bilder hat die DB denn, und auch welcher Hardware läuft sie?

@MetadataTag muss die gesamte Datenbank durchsuchen, und dann auch noch mit einem super-langen regexp. Und auch noch mit @Rating verknüft. Gute Güte.
Das ist wirklich ein worst-case Szenario. Dazu gibt es auch entsprechende Warnungen in der Hilfe.

IMatch berechnet Kategorien, wenn sie zum ersten Mal gebraucht werden. Und cached dann die Ergebnisse bis sich irgendwas relevantes in der DB ändert. Da Deine Formel mit Tags arbeitet wird sie jedes mal invalidiert wenn sich auch nur ein Tag ändert. Also quasi dauernd während IMatch neue Bilder einließt.

Wenn ich das richtig interpretiere wählst Du Bilder an einer Reihe von Tagen aus (das macht man normalerweise in der Zeitachsenansicht oder über einen Date-Filter im Filter-Panel) und dann entfernst Du alle zurückgewiesenen Dateien vom Ergebnis. Und das für alle Dateien in der Datenbank. Puh.

Was willst Du damit erreichen? Ich kann in der Timeline View einfach die passende Woche/Monat/Tage auswählen und sehe die Dateien. Dann ein Filter für Reject und fertig. Wenn sich die Zeitstempel der Dateien nicht ändern, kann ich die Dateien einfach auswählen und einer Kategorie zuweisen.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

RobiWan

Vielleicht/ sehr wahrscheinlich sogar - kenne ich IMatch nicht gut genug. Ich habe es zwar schon einige Jahre aber genutzt habe ich es nie wirklich "ernsthaft"
Das es mit dem NetadataTag suboptimal ist, hatte ich mir schon gedacht.

Tja was will ich erreichen. An sich nichts besonderes. Ich habe halt gerne eine Art "Übersicht" zu Ländern/ Orten zu den ich fahre. Man mag es gerne als eine Macke von mir sehen. Ich habe es schon so unter Lightroom und später Capture One genutzt.
Jetzt in IMatch sieht es etwa so aus(Zugeklappte Kategorien, eine bestimmte Kategorie aufgeklappt)
Mit Filter geht das natürlich viel schneller. Das Problem dabei - so als Ahnungsloser - man kann nicht so navigieren wie bei Kategorien oder den vordefinierten Kollationen. Ich habe zumindest bis jetzt keine Möglichkeit gefunden wie ich einen Filter an eine Kategorie "binde" oder wie es bei LR/ C1 möglich ist - ein SmartAlbum anhand von Datum zu definieren. Ich nehme zumindest an, dass es dann viel schneller gehen musste. Wenn ich für alle Reisen einen Filter definiere, wird es meiner Meinung nach schnell unübersichtlich.

In meiner DB sind aktuell 160000 Bilder. Es läuft unter Win 11 auf einem

AMD Ryzen 9 3900X 12-Core Processor 4.00 GHz mit 64GB RAM

Gruß Robert

Mario

QuoteTja was will ich erreichen. An sich nichts besonderes. Ich habe halt gerne eine Art "Übersicht" zu Ländern/ Orten zu den ich fahre.

IMatch gruppiert Deine Dateien automatisch anhand von Land, Stadt und Ort in der Kategorie IMatch Standard Kategorien > Bilder > Orte.
Es sei denn, Deine Bilder haben keine GPS-Daten und Du hast diese Ortsdaten auch nicht eingepflegt.



Im The Locations Pane im Dashboardl findest Du eine Weltkarte, die zeigt, wo Du überall Bilder gemacht hast (ebenfalls basierend auf den Ortsdaten in den Bildern).
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

RobiWan

Ja alte Bilder haben oft keine GPS Daten. Bei neuen sind die "fast" immer da (Außer GPS hat nicht funktioniert)

Ich habe jetzt noch was anderes "gebastelt". Wenn ich es auf 1 Ebene kriege wäre es denke ich genau das was ich erreichen will.

Gruß Robert

Mario

Du kannst pro Ebene nur ein Tag verwendet,
Oder Du nimmst halt zwei Variablen auf einer Ebene, Land und Datum, nach Wunsch formatiert.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

RobiWan

Ich glaube ich habe die Lösung für mich gefunden. Muss noch genau testen aber so schlecht sieht es auf den ersten Blick sieht es nicht so schlecht aus.

Meine Bilder werden immer nach dem gleichen Schema gespeichert

Kamerabody\RAW\Jahr\Monat\Tag

So habe ich jetzt eine Formelbasierte Kategorie erstellt und als Formel folgendes eingegeben:

"@FolderRegExp[2019\\09\\30]" OR "@FolderRegExp[2019\\10\\01]"  OR "@FolderRegExp[2019\\10\\02]" OR "@FolderRegExp[2019\\10\\03]" NOT "@Rating[-1]"


[EDIT]
Das geht noch kürzer :D

"@FolderRegExp[2019\\09\\30|\\2019\\10\\01|\\2019\\10\\02|\\2019\\10\\03]" NOT "@Rating[-1]"
[/EDIT]


Gruß Robert