[quote=pq,22.12.2005, 12:25]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
( $net{$2}{NetRxBytes}
, $net{$2}{NetRxPackets}
, $net{$2}{NetRxErrs}
, $net{$2}{NetRxDrop}
, $net{$2}{NetRxFifo}
, $net{$2}{NetRxFrame}
, $net{$2}{NetRxCompr}
, $net{$2}{NetRxMulti}
, $net{$2}{NetTxBytes}
, $net{$2}{NetTxPacktes}
, $net{$2}{NetTxErrs}
, $net{$2}{NetTxDrop}
, $net{$2}{NetTxFifo}
, $net{$2}{NetTxColls}
, $net{$2}{NetTxCarr}
, $net{$2}{NetTxCompr}
) = split /\s+/, $4;
ist wirklich unschön.[/quote]
Über die Schematik meines Codestils lasse ich immer gerne mit mir
verhandeln. Aber der Eine findet _das_ schön, ein Anderer _dies_ und
wieder ein Anderer _sowas_ ... wem soll ich es recht machen? :(
Am besten mir :)
[quote=pq,22.12.2005, 12:25]
davon hast du noch mehr im modul.
das ist, nebenbei, auch ineffizient.[/quote]
Du hast recht.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/perl -w
use strict;
use Benchmark;
my @array = ( 'Inter-| Receive | Transmit'
, ' face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed'
, ' lo: 7897 101 0 0 0 0 0 0 7897 101 0 0 0 0 0 0'
, ' sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'
, ' eth0: 928792 1249 0 0 0 0 0 0 261023 1281 0 0 0 0 0 0'
, ' dsl0: 899950 1215 0 0 0 0 0 0 226997 1169 0 0 0 0 0 0'
);
my (%net,%sum);
Benchmark::cmpthese(-1, {
'%net' => sub { for (@array) {
if (/^(\s+|)(\w+):(\s+|)(.*)/) {
( $net{$2}{NetRxBytes}
, $net{$2}{NetRxPackets}
, $net{$2}{NetRxErrs}
, $net{$2}{NetRxDrop}
, $net{$2}{NetRxFifo}
, $net{$2}{NetRxFrame}
, $net{$2}{NetRxCompr}
, $net{$2}{NetRxMulti}
, $net{$2}{NetTxBytes}
, $net{$2}{NetTxPacktes}
, $net{$2}{NetTxErrs}
, $net{$2}{NetTxDrop}
, $net{$2}{NetTxFifo}
, $net{$2}{NetTxColls}
, $net{$2}{NetTxCarr}
, $net{$2}{NetTxCompr}
) = split /\s+/, $4;
$sum{NetRxBytes} += $net{$2}{NetRxBytes};
$sum{NetTxBytes} += $net{$2}{NetTxBytes};
}
}
},
'@net' => sub { for (@array) {
if (/^(\s+|)(\w+):(\s+|)(.*)/) {
@{$net{$2}}{qw(
NetRxBytes NetRxPackets NetRxErrs NetRxDrop NetRxFifo NetRxFrame
NetRxCompr NetRxMulti NetTxBytes NetTxPacktes NetTxErrs NetTxDrop
NetTxFifo NetTxColls NetTxCarr NetTxCompr
)} = split /\s+/, $4;
$sum{NetRxBytes} += $net{$2}{NetRxBytes};
$sum{NetTxBytes} += $net{$2}{NetTxBytes};
}
}
},
});
Rate %net @net
%net 3199/s -- -22%
@net 4110/s 28% --
Rate %net @net
%net 3349/s -- -17%
@net 4036/s 21% --
Rate %net @net
%net 3412/s -- -18%
@net 4148/s 22% --
Ca. 800 Iterations mehr. Das ist im Vergleich nicht wenig.
Greez,
opi
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.