ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/eg/bench2
Revision: 1.1
Committed: Sat Apr 26 02:27:30 2008 UTC (16 years ago) by root
Branch: MAIN
CVS Tags: rel-4_151, rel-4_152, rel-4_91, rel-4_04, rel-4_23, rel-7_05, rel-4_21, rel-7_07, rel-7_01, rel-7_02, rel-7_03, rel-7_08, rel-7_09, rel-4_412, rel-4_81, rel-4_83, rel-4_82, rel-4_86, rel-4_352, rel-5_112, rel-3_41, rel-4_351, rel-7_16, rel-4_14, rel-4_15, rel-7_13, rel-4_13, rel-7_11, rel-5_251, rel-0_85, rel-4_331, rel-6_0, rel-6_1, rel-4_231, rel-4_233, rel-4_232, rel-4_8, rel-4_234, rel-4_4, rel-4_0, rel-6_11, rel-6_12, rel-6_13, rel-5_261, rel-4_05, rel-7_15, rel-7_14, rel-4_12, rel-7_12, rel-4_11, rel-6_02, rel-6_01, rel-5_271, rel-5_28, rel-5_29, rel-7_0, rel-5_21, rel-5_22, rel-5_23, rel-5_24, rel-5_26, rel-5_27, rel-5_1, rel-5_0, rel-5_3, rel-5_2, rel-7_04, rel-3_5, rel-3_4, rel-3_3, rel-4_22, rel-5_201, rel-5_202, rel-5_31, rel-4_161, rel-4_160, rel-5_111, rel-4_881, rel-4_411, rel-4_9, rel-5_01, rel-6_14, rel-4_45, rel-4_41, rel-4_42, rel-4_1, rel-4_2, rel-4_88, rel-4_3, rel-5_11, rel-5_12, rel-4_31, rel-4_32, rel-4_33, rel-4_34, rel-4_35, rel-4_03, HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 #!/opt/bin/perl
2
3 # ugly code, don't look at it
4
5 # ulimit -n 500000
6 # $0 <fds> <active>
7
8 use strict;
9 use Event;
10 use EV;
11 use Socket;
12 use AnyEvent;
13 use Time::HiRes 'time';
14
15 my $nr = $ARGV[0] || 1000;
16
17 $| = 1;
18
19 print "name $ENV{PERL_ANYEVENT_MODEL}\n";
20 print "sockets ", $nr * 2, "\n";
21
22 my $count;
23
24 AnyEvent::detect;
25
26 my $c = time;
27
28 my @conn; @conn = map {
29 socketpair my $a, my $b, AF_UNIX, SOCK_STREAM, PF_UNSPEC or die "$!";
30 my $self; $self = {
31 r => $a,
32 w => $b,
33 rw => AnyEvent->io (fh => $a, poll => "r", cb => sub {
34 ++$count;
35 sysread $a, my $buf, 1;
36 syswrite $conn[rand @conn]{w}, $buf, 1;
37 $self->{to} = AnyEvent->timer (after => 3600, cb => sub { die });
38 }),
39 to => AnyEvent->timer (after => 3600, cb => sub { die }),
40 };
41 $self
42 } 1 .. $nr;
43
44 $c = (time - $c) / $nr * 1e6;
45
46 printf "create %.2f\n", $c;
47
48 for (1 .. $ARGV[1] || $nr * 0.01) {
49 syswrite $conn[rand @conn]{w}, $_, 1;
50 }
51
52 my $i = time;
53
54 my $stop = AnyEvent->timer (after => 1, cb => sub {
55 $i = (time - $i) / $count * 1e6;
56 printf "request %.2f\n", $i;
57 exit;
58 });
59
60 AnyEvent->condvar->wait;
61
62
63