Autor Beitrag
bergrath
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Mi 09.01.08 12:33 
Hi.

Ich habe verschiedene Regexes, die sich sehr stark unterscheiden in ihrer Geschwindigkeit. Da sie eigentlich ziemllich ähnlich sind im Aufbau und in ihrer Länge ist es mir ein Rätsel wieso fast alle ein Ergebnis innerhalb von Sekunden ausspucken und eine andere Regex fast 20 Minuten braucht um ein Ergebnis zurück zu geben. Ich poste hier mal die verschiedenen Regexes. Die letzte Regex ist die, die 20 Minuten braucht.

Vielleicht kann mir ja jemand von euch sagen woran dieser gravierende Performance-Unterschied liegt. Vielen Dank im Voraus.

Regexes:
("([2-8][0-9]|[-]*[S][A-Z0-9]{3})([ ]*|[A-Z0-9]*)([*][2-8A-Z][0-9A-Z]{3})*[*+-]*([2-8][A-Z0-9]{3})*([+-]*[S][W][A-Z0-9]{2})*[*]*([S][A-Z0-9]{3}[*]*([2-8][0-9][A-Z0-9]))*[=][S][A-Z0-9]{3}([$]?)")

("[-]*[(]([2-8][0-9]|([2-8][0-9A-Z]{3}))[,][0-9A-Z ]*([*][0-9A-Z ]*)*[)][=][S][A-Z0-9]{3}")

("([2-8][0-9][0-9A-Z ]|[-]*[S][A-Z0-9 ]{3})([*][2-8][0-9][0-9A-Z ]|([S][A-Z0-9]){3})*[=][S][A-Z]{3}")

("[2-8][0-9][0-9A-Z]*[*+-]*([2-8][0-9][0-9A-Z][*+-])*([(][2-8][0-9]([0-9][0-9])*[,]([0-9A-Z ]*[*]*)+[)])[=][S][A-Z]{3}")

("[+-]*([S][A-Z][A-Z0-9][A-Z0-9]|[2-8][0-9][0-9A-Z])([*+-][S][A-Z][A-Z0-9][A-Z0-9]|[2-8][0-9A-Z ]{3})*[=][S][A-Z][A-Z0-0][A-Z0-9]")

("([(]([2-8][0-9][0-9][0-9]|[2-8][0-9])[,]([0-9A-Z]*[*]*)+[)])([*+]*([(]([2-8][0-9][0-9][0-9]|[2-8][0-9])[,]([0-9A-Z]*[*]*)+[)]))*[=][S][A-Z]{3}")


Wie gesagt: Die letzte Regex ist die, die 15-20 Minuten braucht. Die anderen nur Sekunden. Woran könnte das liegen???

MfG


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mi 09.01.2008 um 13:53
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 09.01.08 17:15 
Du scheinst beim Thema Cross-Posten ja äußert penetrant zu sein :autsch: .
www.mycsharp.de/wbb2...d.php?threadid=48290
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 09.01.08 17:21 
Aber ein erneuter Versuch unter myCSharp um 13:43 Uhr wurde schnell gelöscht. :mrgreen: Jürgen
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 09.01.08 17:25 
Uhm... wenn ich das richtig verstehe, wurde ja um 10 Uhr auch noch ein Doppelposting zusammengefügt, dann wären wir summa summarum bei 4 Threads für ein Thema... Wow... :gruebel: .
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 09.01.08 17:27 
Leute, ist gut jetzt :roll:
Ihr tut ja so, als hätte bergrath gerade einen Mord begangen ...

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
bergrath Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Fr 11.01.08 08:28 
Hi Leute.

Ja so kommt es mir auch vor, als hätte ich etwas kriminelles getan. Dabei habe ich nur versucht so schnell wie möglich zu einer Antwort zu kommen.

Ich wollte niemandem den Tag versauen durch meine Doppelpostings. Ich konnte ja nicht ahnen, dass nach meinen Postings in verschiedenen Foren gesucht wird, um mir diese zu schließen.

Leider bin ich durch diese ganzen geschlossenen Threads noch nicht zu einer Beantwortung meiner Frage bzw. meiner Fragen geführt. Die Postings bezogen sich auch nicht immer auf das gleiche Thema, sondern hatten verschiedene Fragen.

Also bleibe ich jetzt bei meinen Threads und eröffne keine neuen mehr.

MfG
Bergrath der böse Doppelposter
bergrath Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Fr 11.01.08 11:18 
Hi.

Kommen wir nochmal zurück auf die ursprüngliche Frage am Anfang des Threads.

Kann mir dazu jemand was sagen??????? (oder wird hier mehr auf die kritischen Bemerkungen geachtet und die ursprüngliche Frage übersehen ????)

MfG
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 11.01.08 11:26 
Ich bin der gleichen Meinung wie svenson(der dir gestern mittag darauf schon im myCSHARP-Forum geantwortet hat --> ja du solltest dir auch mal die antworten auf deine posts genau durchlesen wenn du sie schon in etlichen foren mehrmals postest)
das Problem sind wahrscheinlich die "*[*]*" konstruktionen da diese dem Regex sehr viel Spielraum und somit rechenaufwand geben. Du solltest versuchen präzisere vorgaben im regex zu verwenden.
bergrath Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Fr 11.01.08 11:45 
hi.

ich lese mir die antworten schon durch, die ich bekomme. Aber ich war der Meinung, daß es an etwas anderem liegen könnte.

Ich habe andere Regexes, die sehr viel schneller sind und ähnlich formuliert sind.

Aber ich werde mal versuchen die regex umzuformulieren.

Danke.

MfG