Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
flair •-->

Anmeldedatum: 08.04.2007 Beiträge: 20 Wohnort: Hannover
|
Verfasst am: 23.03.2008 - 14:16 Titel: Unter Leopard deutlich langsamer als unter Tiger ??? |
|
|
Ich sortiere und benenne Dateien im Finder jeweils mit einem Script um. Unter Tiger hat der der Rechner nur ca. 6 Minuten für 10.000 Dateien benötigt, das gleiche Script brauch nach dem Update auf Leopard 4 Stunden.
Ich denke das kommt davon, dass unter Leopard alle Änderungen sofort berechnet und neu angezeigt werden, oder hat jemand eine andere Idee?
Lässt sich das ggf. wieder aus- bzw. umschalten auf das alte Tiger-Verhalten?
Vielen Dank. |
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 23.03.2008 - 16:19 Titel: |
|
|
Um Dir wirklich helfen zu können, müßte man das Skript schon sehen.
Wenn Du einen Intel-Mac besitzt, solltest Du es zumindest schon mal als UB abspeichern: dazu als "Programm-Bundle" sichern. |
|
Nach oben |
|
 |
flair •-->

Anmeldedatum: 08.04.2007 Beiträge: 20 Wohnort: Hannover
|
Verfasst am: 23.03.2008 - 16:32 Titel: |
|
|
Ich habe Intel- und alte Powerbooks jeweils mit Tiger und Leopard im Einsatz und immer ist unter Tiger das Script ca. 10x so schnell.
OK, hier das Script:
Code: | tell application "Finder"
set Ordner to (choose folder)
repeat with xx from 10000 to 10099
repeat with yy from 10000 to 10099
set xk to characters 2 thru 4 of ((xx + 100000) as string)
set yk to characters 2 thru 4 of ((yy + 100000) as string)
set Dateiname to ((xx as string) & "_" & yy as string) & ".png"
set Zielordner to ((xk as string) & "_" & yk as string)
try
move document file Dateiname of Ordner to folder Zielordner of folder "Fertig" of disk "Medien"
on error
try
set label index of document file Dateiname of Ordner to 1
end try
end try
end repeat
end repeat
set label index of folder Ordner to 6
end tell
|
|
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 23.03.2008 - 20:22 Titel: |
|
|
Nun, solch gravierende Zeitunterschiede habe ich nicht ausmachen können, allerdings habe ich auch nur die Schleifen ohne die Move-Aktion des Finders getestet und diese stattdessen in ein Log schreiben lassen.
Ein wenig Schleifenoptimierung hat nur ein paar Sekunden gebracht.
Das Ganze scheint mir aber nicht besonders effektiv. Die äußere Schleifenkonstruktion (zumindest bei diesen Zahlenbereichen) ist nahezu überflüssig.
Ein Umbenennen findet in diesem Skriptteil ja nicht statt, sondern nur ein "Move" von Dateien, die eine gewisse Namensgebung erfüllen, in einen bestimmten Ordner (in diesem Fall immer der gleiche).
Dieser "Move" findet für jede Datei einzeln statt. Das könnte man mit einer einzigen Shellzeile sehr viel effektiver in einem Rutsch erledigen. Ich bin zwar auch nicht der Shell-Freak, aber wenn Du mal genau versuchst zu beschreiben, was passieren soll, dann will ich's mal versuchen. (Oder jemand anderes springt ein ). Ich nehme an, es sind viele kleine Dateien, und dann scheinen mir auch 6 Minuten noch zu lang. |
|
Nach oben |
|
 |
flair •-->

Anmeldedatum: 08.04.2007 Beiträge: 20 Wohnort: Hannover
|
Verfasst am: 23.03.2008 - 21:22 Titel: |
|
|
Das Script ist etwas vereinfacht. Es gibt eine alte Ordnerstruktur in der 18.000.000 Dateien zu jeweils 200.000 Dateien je Ordner sortiert sind und jetzt umsortiert werden sollen in 1.800 Ordner zu 10.000 Dateien. Umbenannt werden die Dateien in einem zweiten Schritt.
Ich hab das ganze bisher mit den mehrmals verschachtelten repeat Anweisungen gelöst, da fehlende Dateien dann auch in ein Protokoll schreiben kann. |
|
Nach oben |
|
 |
Skeeve •---->


Anmeldedatum: 20.04.2006 Beiträge: 1067
|
Verfasst am: 23.03.2008 - 21:32 Titel: |
|
|
18 Millionen Dateien!? Vergiß den Finder und nimm die Shell. Nenn mir mal die Bedingungen und ich bastel Dir was. _________________ "All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies") |
|
Nach oben |
|
 |
flair •-->

Anmeldedatum: 08.04.2007 Beiträge: 20 Wohnort: Hannover
|
Verfasst am: 24.03.2008 - 00:45 Titel: |
|
|
Die Dateien im Ausgangsordner haben den Namen xxxxx_yyyyy.png wobei xxxxx von z.B. fortlaufend von 12345 bis 23456 geht und yyyyy 76543 bis 98765. Die neue Ordnerstrunktur berücksichtigt nur die erster Stellen, also 123_234 so das diese Ordner die 10.000 passenden Dateien aufnehmen können.
In den zweiten Schritt werden dann die ersten und zweiten Zahlen im Dateinamen getauscht: aus 12345_76543.png wird dann 76543_12345.png
Dies habe ich bisher über zwei Scripte gelöst.
Zu guter letzt wird dann mit dem Programm GrafikConverter aus diesen
Einzelbildern ein großes Bild erstellt. |
|
Nach oben |
|
 |
Skeeve •---->


Anmeldedatum: 20.04.2006 Beiträge: 1067
|
Verfasst am: 24.03.2008 - 01:18 Titel: |
|
|
Also dies "Erklärung" verstehe ich überhauptnicht.
Einmal schreibst Du von je 200.000 Dateien in 90 Ordnern, und dann sind die Dateien plötzlich von 12345 bi 23456 (=11.111) und 76543 bis 98765 (=22.222) durchnumeriert. Diese Numerierung ergbe aber 246.908.642 mögliche Kombinationen.
Mach doch mal biitte folgendes in der shell:
Code: | cd /Pfad/zum/Ordner/der/die/90/Ordner/enthält
find . -ls > /tmp/listing.txt
zip -mj ~/Desktop/listing.zip /tmp/listing.txt
|
Und maile mir das an flair.mailt.skeeve@xoxy.net
ann habe ich zumindest schon mal einen Überblick über den IST-Zustand. Vielleicht verstehe ich dann mehr. _________________ "All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies") |
|
Nach oben |
|
 |
|