Thread teil einer zeichenkette verwenden - wie?
(7 answers)
Opened by Gast at 2007-04-21 14:50
[quote=pq,21.04.2007, 15:31][quote=renee,21.04.2007, 14:26]Split dürfte aber schneller sein als die RegEx...[/quote]
wieso das?[/quote] Das wuesste ich auch gerne. Man muss beachten, dass split ja auch einen regulaeren Ausdruck benutzt. Ich habe es mal gebenchmarkt: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 use strict; use warnings; use Benchmark qw(cmpthese); my $klein = 'alpha - beta'; cmpthese (0, { m_klein => sub { my ($part) = $klein =~ m/^([^-]*)/; }, split_klein => sub { my ($part) = split /-/,$klein,2; }, }); my $gross = 'alpha - ' . 'beta' x 10000; cmpthese (0, { m_gross => sub { my ($part) = $gross =~ m/^([^-]*)/; }, split_gross => sub { my ($part) = split /-/,$gross,2; }, }); Ergebnis: Code: (dl
)
1 Rate m_klein split_klein Offenbar ist split bei kleinen Strings tatsaechlich etwas schneller (was man vielleicht durch Optimieren meines Regexes beheben kann), aber bei grossen Strings schneidet split weitaus schlechter ab. Das lieght imho daran, dass der lange zweite Teil des Strings sinnlos durch die Gegend kopiert werden muss. Lieblingsmodule:
![]() ![]() |