Schrift
[thread]7985[/thread]

routine zu langsam...: matches über string



<< >> 9 Einträge, 1 Seite
steinwolf
 2006-05-16 13:44
#66145 #66145
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
foreach (@keywords)
 {
   if($str =~ m/($_)/gi ) {
    $i++;
    ##print "Keyword gefunden
   }
 }

diese routine braucht bei mir ewig lange. die @worte-list besteht aus ca. 200 worten.

$str ist im schnitt 50-100 KB groß.

wie kann ich die schleife tunen??

mfg
steinigen

//Modedit: +Code-Tag, Smilie deaktiviert\n\n

<!--EDIT|GwenDragon|1147772742-->
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
GwenDragon
 2006-05-16 13:46
#66146 #66146
User since
2005-01-17
14562 Artikel
Admin1
[Homepage]
user image
Regexe sind langsam
Versuchs mal mit index

perldoc -f index\n\n

<!--EDIT|GwenDragon|1147772832-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

renee
 2006-05-16 13:53
#66147 #66147
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
und das g-Flag ist unnötig!

Was hast Du damit vor? Ist es notwendig, dass alle Worte gesucht werden? Oder reicht es Dir "hauptsache eines der Wörter ist drin"?

Du könntest Dir aus allen Worten auch einen einzigen Regulären Ausdruck machen (CPAN:Regex::Assemble)...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steinwolf
 2006-05-16 13:58
#66148 #66148
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
hmm.. aber wie gewendolyne schon sagte: regexes sind immer langsamer oder?

Code: (dl )
1
2
3
4
my $str = "dies ist ein test";
if(index($str, "ist") != -1) {
print "gefunden";
}


so meintest du doch oder?\n\n

<!--EDIT|steinwolf|1147773548-->
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
GwenDragon
 2006-05-16 14:00
#66149 #66149
User since
2005-01-17
14562 Artikel
Admin1
[Homepage]
user image
@wölfchen

Eben, das meinte ich.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

GwenDragon
 2006-05-16 14:02
#66150 #66150
User since
2005-01-17
14562 Artikel
Admin1
[Homepage]
user image
Wenn du keine Regexe brauchst und "fertige" Wörter hast, ist index unschlagbar!
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

steinwolf
 2006-05-16 14:02
#66151 #66151
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
:D
oki, danke.

ist tatsächlich schneller. nice
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
GwenDragon
 2006-05-16 14:04
#66152 #66152
User since
2005-01-17
14562 Artikel
Admin1
[Homepage]
user image
Argg! Was ist hier los? Ers hängt das Forum und dann mehrmals eingetragene Posts!??

//EDIT: gelöscht\n\n

<!--EDIT|GwenDragon|1147774003-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

renee
 2006-05-16 14:04
#66153 #66153
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=steinwolf,16.05.2006, 11:58]hmm.. aber wie gewendolyne schon sagte: regexes sind immer langsamer oder?

Code: (dl )
1
2
3
4
my $str = "dies ist ein test";
if(index($str, "ist") != -1) {
print "gefunden";
}


so meintest du doch oder?[/quote]
Jepp, index ist schneller, aber ich wollte trotzdem auf weitere Sachen aufmerksam machen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 9 Einträge, 1 Seite



View all threads created 2006-05-16 13:44.