Original von herbivore
ich würde deine Grundannahme in Frage stellen wollen. Ich kann mir nicht vorstellen, dass ein String-Array soviel verschlingt. Ich würde bei 2500 Einträgen mit max. 250.000 KB rechnen. Aber davon abgesehen: was wären heutzutage schon 10 MB?
Außerdem brauchst du doch nur die Werte der Sprache im Speicher, die du gerade "highlightest".
Da mein Editor mehrere Dateien gleichzeitig offen haben kann (die im Extremfall andere Sprachen zum highlighten beinhalten) summiert sich das dann doch schon ganz schön.
Mit der Größe habe ich gerade nochmal nachgeschaut. Hier auf meinem NB ist die Auslastung nur etwa halb so groß wie auf meinem anderen Rechner. Komisch. Naja, da werde ich nochmal genau nachschauen.
Allerdings ist das ja immer noch nur die Funktionsnamen, ohne Formatierungseinstellungen. Die Einstellungen sollen für jede Funktion(sgruppe) einzeln definierbar sein. Was im Extremfall dann auch 2500 verschiedene Einstellungen wären, die man auch draufschlagen müsste.
An und für sich sind 10 MB nicht viel - aber wenn man bedenkt, das auf den Rechnern evtl. nicht 1 GB RAM drin sind, sondern nur 128 MB oder so, dann kann man sich nicht zwingend einen 30 MB verbratenden Editor noch leisten.
Ich würde die Namen sowieso als Keys eines Dictionarys speichern, damit eine schnelle überprüfung möglich ist, ob ein Wort ein Funktionsname ist (ContainsKey).
Klar, werde sowieso eine Dictionary nehmen. Habe es mit beidem (Array und Dictionary) ausprobiert. Die Auslastung vom Dictionary lag nur unwesentlich höher.
Werde warscheinlich eine Mischung aus Vorladen und OnDemand-Laden verwenden. Oder das konfigurierbar machen.