ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/cf.pm
(Generate patch)

Comparing deliantra/server/lib/cf.pm (file contents):
Revision 1.363 by root, Mon Sep 10 17:24:36 2007 UTC vs.
Revision 1.364 by root, Tue Sep 11 08:41:11 2007 UTC

3445 my $signal = new Coro::Signal; 3445 my $signal = new Coro::Signal;
3446 push @WAIT_FOR_TICK_BEGIN, $signal; 3446 push @WAIT_FOR_TICK_BEGIN, $signal;
3447 $signal->wait; 3447 $signal->wait;
3448} 3448}
3449 3449
3450 my $min = 1e6;#d# 3450our $stat_fh;
3451 my $avg = 10; 3451sysopen $stat_fh, "/tmp/cfstats", Fcntl::O_APPEND | Fcntl::O_CREAT | Fcntl::O_WRONLY, 0600;#d#
3452
3452$TICK_WATCHER = Event->timer ( 3453$TICK_WATCHER = Event->timer (
3453 reentrant => 0, 3454 reentrant => 0,
3454 parked => 1, 3455 parked => 1,
3455 prio => 0, 3456 prio => 0,
3456 at => $NEXT_TICK || $TICK, 3457 at => $NEXT_TICK || $TICK,
3460 Carp::cluck "major BUG: server tick called outside of main coro, skipping it" 3461 Carp::cluck "major BUG: server tick called outside of main coro, skipping it"
3461 unless ++$bug_warning > 10; 3462 unless ++$bug_warning > 10;
3462 return; 3463 return;
3463 } 3464 }
3464 3465
3466 my @pl = cf::player::list; my $stats = sprintf "%.2f %d %d %d", $RUNTIME, (scalar @pl), cf::object::actives_size, cf::object::objects_size; #d#
3467
3465 $NOW = $tick_start = Event::time; 3468 $NOW = $tick_start = Event::time;
3466 3469
3467 cf::server_tick; # one server iteration 3470 cf::server_tick; # one server iteration
3468
3469 0 && sync_job {#d#
3470 for(1..10) {
3471 my $t = Event::time;
3472 my $map = my $map = new_from_path cf::map "/tmp/x.map"
3473 or die;
3474
3475 $map->width (50);
3476 $map->height (50);
3477 $map->alloc;
3478 $map->_load_objects ("/tmp/x.map", 1); #TODO: does not work
3479 my $t = Event::time - $t;
3480
3481 #next unless $t < 0.0013;#d#
3482 if ($t < $min) {
3483 $min = $t;
3484 }
3485 $avg = $avg * 0.99 + $t * 0.01;
3486 }
3487 warn "XXXXXXXXXXXXXXXXXX min $min avg $avg\n";#d#
3488 exit 0;
3489 # 2007-05-22 02:33:04.569 min 0.00112509727478027 avg 0.0012259249572477
3490 };
3491 3471
3492 $RUNTIME += $TICK; 3472 $RUNTIME += $TICK;
3493 $NEXT_TICK += $TICK; 3473 $NEXT_TICK += $TICK;
3494 3474
3495 if ($NOW >= $NEXT_RUNTIME_WRITE) { 3475 if ($NOW >= $NEXT_RUNTIME_WRITE) {
3521 $LOAD = ($NOW - $tick_start) / $TICK; 3501 $LOAD = ($NOW - $tick_start) / $TICK;
3522 $LOADAVG = $LOADAVG * 0.75 + $LOAD * 0.25; 3502 $LOADAVG = $LOADAVG * 0.75 + $LOAD * 0.25;
3523 3503
3524 _post_tick; 3504 _post_tick;
3525 3505
3526 3506 # gather some statistics#d#
3507 $stats .= sprintf " %d\n", 10000 * ($NOW - $tick_start);#d#
3508 IO::AIO::aio_write $stat_fh, undef, undef, $stats, 0;#d#
3527 }, 3509 },
3528); 3510);
3529 3511
3530{ 3512{
3531 BDB::min_parallel 8; 3513 BDB::min_parallel 8;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines