--- deliantra/server/lib/cf.pm 2007/09/10 17:24:36 1.363 +++ deliantra/server/lib/cf.pm 2007/09/11 08:41:11 1.364 @@ -3447,8 +3447,9 @@ $signal->wait; } - my $min = 1e6;#d# - my $avg = 10; +our $stat_fh; +sysopen $stat_fh, "/tmp/cfstats", Fcntl::O_APPEND | Fcntl::O_CREAT | Fcntl::O_WRONLY, 0600;#d# + $TICK_WATCHER = Event->timer ( reentrant => 0, parked => 1, @@ -3462,33 +3463,12 @@ return; } + my @pl = cf::player::list; my $stats = sprintf "%.2f %d %d %d", $RUNTIME, (scalar @pl), cf::object::actives_size, cf::object::objects_size; #d# + $NOW = $tick_start = Event::time; cf::server_tick; # one server iteration - 0 && sync_job {#d# - for(1..10) { - my $t = Event::time; - my $map = my $map = new_from_path cf::map "/tmp/x.map" - or die; - - $map->width (50); - $map->height (50); - $map->alloc; - $map->_load_objects ("/tmp/x.map", 1); #TODO: does not work - my $t = Event::time - $t; - - #next unless $t < 0.0013;#d# - if ($t < $min) { - $min = $t; - } - $avg = $avg * 0.99 + $t * 0.01; - } - warn "XXXXXXXXXXXXXXXXXX min $min avg $avg\n";#d# - exit 0; - # 2007-05-22 02:33:04.569 min 0.00112509727478027 avg 0.0012259249572477 - }; - $RUNTIME += $TICK; $NEXT_TICK += $TICK; @@ -3523,7 +3503,9 @@ _post_tick; - + # gather some statistics#d# + $stats .= sprintf " %d\n", 10000 * ($NOW - $tick_start);#d# + IO::AIO::aio_write $stat_fh, undef, undef, $stats, 0;#d# }, );