Halloechen,
zum Thema Versionsverwaltung: svn seit 2005 derzeit Rev. 1047 der betroffenen Klasse. 
Das das der Flaschenhals ist, da bin ich mir zu 100% sicher. Ich habe an dem Programm schon so viel "rumprofiled" (und auch schon viel optimiert) und habe letztendlich genau die Indexerstellung als Flaschenahls extrahiert - und vereinfacht in Posting 1 verpackt. Das Posting ist also nicht so ganz spontan entstanden...
Ich habe den OO-Entwurf nicht selbst gestaltet. Dieser ergibt sich quasi aus dem Design der iTunesDB, deren "Sklave" ich bin.
Ok, ich versuche es nochmal zu erklaeren:
Ein Track in der iTunesDB hat ca. 80 "Merkmale". Einige davon sind: "Title", "Album", "Tracknumber", "Artist", "Genre", "Composer". Ueber diese (und auch ueber Varianten von diesen - z.B. ueber "Artist"+"Album"+"TrackTitle") muss man einen Index bilden, damit der Titel auf dem iPod in der richtigen Ordnung angezeigt wird - je nachdem in welchem Menue man gerade auf dem iPod browst.
Dazu benoetige ich die im Track gespeicherte Position in der Relation zu dem "Merkmal" am Track oder der "Merkmalkombination". Insgesamt muss ich 18 dieser Indexe erstellen, auf meinem "grossen" iPod hab ich 30.000 Titel. Das Erstellen aus meiner Methode (aus Posting 1) dauert ca. 10 Sekunden. Das ist mir einfach zu lang... daher such ich nach Optimierungsmoeglichkeiten.
Danke!
Gruss, FFNB.
PS: Ich hab gerade nochmal ganz viel "dazueditiert"