Ich muss die Anzahl der Speicherzuweisungen in einer Textverarbeitung innere Schleife minimieren, die eine Anzahl von Aufrufen an Regex.Matches()
enthält. Also, die Frage, eine Textlänge (in Zeichen) gegeben t
, eine RegexMuster Länge (in Zeichen) von r
und die Anzahl der Spiele m
, was ist die ungefähre Anzahl der Speicherzuweisungen durch Regex.Matches()
, und was ist die Größe diese Zuweisungen? Sind diese von einer der Regex
Optionen beeinflusst?Wie viele Zuordnungen werden von Regex.Matches() intern ausgeführt?
Ich habe versucht, durch die source code von Regex
und die damit verbundenen Klassen, aber ist durch ihre Komplexität behindert. Habe auch nicht viel Dokumentation im Web gefunden, die sich auf die Speichernutzung von Regex.Matches()
bezieht. Daher die Frage. Speicher-Profiler
Ein Regex ist so etwas wie ein FSM, also sollte es nicht mehr Platz einnehmen als der Speicher (wahrscheinlich eine Hash-Tabelle?), Um es zu speichern und wahrscheinlich etwas mehr Platz für Backtracking. Es würde also von den Einstellungen und der tatsächlichen Regex beeinflusst werden (die Regex-Länge hat nichts damit zu tun, ihre Komplexität und die Verwendung bestimmter Features), die Anzahl der Übereinstimmungen sollte keine Rolle spielen (abgesehen von den tatsächlichen Ergebnissen, die ich vermute). Hast du schon Profiling probiert? – MarZab
Ich verstehe das Konzept bereits; Um die Umsetzung geht es in der Frage. – bright