Braucht man wirklich Strings mit Int64 Länge?
Die Frage wollte ich eigentlich auch stellen. Allein schon das Hantieren mit 2GB Strings ist schon heikel genug. Bei jedem Copy-on-Write werden da mal eben weitere 2GB am Stück belegt. Einige Dinge sollte man mit so großen Strings einfach nicht machen. 64-Bit hin oder her, das ist einfach Verschwendung und schreit schon wegen der Performance nach einem anderen Ansatz. Computer sind zwar bekanntermaßen schnell, aber bei zu vielen Daten brauchen sie halt auch ihre Zeit. Mit einem effizienteren Algorithmus wird es dann meist nicht nur schneller, sondern braucht häufig auch weniger Speicher.
Man stelle sich nur mal vor, man würde eine 32GB Textdatei in einen solchen 64-Bit String einlesen. Ist die Datei UTF-8 codiert, kommen da ca. 64GB Speicherverbrauch zusammen. Da käme so manches handelsübliche Notebook schon an seine
RAM-Grenzen und müsste Speicher auslagern, der dann später wieder eingelesen werden muss. Effizient geht anders.
Ich wäre als wirklich an konkreten Beispielen interessiert, wo Strings mit mehr als 2^30 Zeichen notwendig oder hilfreich (bequemer zählt nicht) wären.