Leser: 2
![]() |
|< 1 2 3 4 5 6 >| | ![]() |
60 Einträge, 6 Seiten |
if (index($rein, '+') > -1 or index($rein, '-') > -1 or index($rein, '*') > -1 or index($rein, '/') > -1) {...}
Devel::DProf oft herausfinden, wo da eine Optimierung ueberhaupt sinn machen koennte. Denn wenn man nur um des Optimierens wegen optimiert, verbraet man nur unnoetig Arbeitszeit, und handelt sich auch unleserlichen und unwartbaren Code ein, der dann noch mehr Entwicklungszeit kostet und auch viel unflexibler wird.QuoteDie goldene Regel zum Optimieren:
Optimiere nie
Wenn du unbedingt optimieren musst, dann optimiere spaeter
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
26
27
28
29
30
31
32
33
#!/usr/bin/perl
use Benchmark;
$rein = '+5000*';
timethese(10000000, {
A => sub {
if ($rein =~ m~(?:-|\+|\*|/)~) {
# Do nothing
}
},
B => sub {
if ($rein =~ m~-~ or m~\+~ or m~\*~ or m~/~) {
# Do nothing
}
},
C => sub {
if ($rein =~ m~[-+*/]~) {
# Do nothing
}
},
D => sub {
if ($rein =~ m~[-]~ or m~[+]~ or m~[*]~ or m~[/]~) {
# Do nothing
}
},
E => sub {
if (index($_, '-') > -1 or index($_, '+') > -1 or index($_, '*') > -1 or index($_, '/') > -1) {
# Do nothing
}
}
});
1
2
3
4
5
6
7
8
9
10
Benchmark: timing 1000000 iterations of A, B, C, D, E...
A: 1 wallclock secs ( 0.80 usr + 0.00 sys = 0.80 CPU) @ 1246882.79/s
B: 1 wallclock secs ( 1.07 usr + 0.00 sys = 1.07 CPU) @ 932835.820/s
C: 1 wallclock secs ( 0.64 usr + 0.00 sys = 0.64 CPU) @ 1562500.00/s
D: 1 wallclock secs ( 0.95 usr + -0.01 sys = 0.94 CPU) @ 1063829.79/s
E: 2 wallclock secs ( 1.45 usr + 0.00 sys = 1.45 CPU) @ 688705.230/s
Windows 2000SP3
1,4 GHZ
1024 MB RAM
![]() |
|< 1 2 3 4 5 6 >| | ![]() |
60 Einträge, 6 Seiten |