Devel-WxProf
view release on metacpan or search on metacpan
bin/wxprofile view on Meta::CPAN
$grid->SetMinSize([500,$height]);
$grid->SetMaxSize([500,$height]);
$grid->Fit();
$grid->FitInside();
}
sub populate_pkg_grid {
my ($self, $data) = @_;
my $busy = Wx::BusyCursor->new();
my $grid = $self->pkg_grid();
my $data_from_ref = [ sort { $b->get_elapsed <=> $a->get_elapsed } values %{ $data } ];
# die Data::Dumper::Dumper $data_from_ref;
$grid->data($data_from_ref);
$grid->AppendRows(scalar @{ $data_from_ref });
for (my $i = 0; $i<scalar @{ $data_from_ref }; $i++ ) {
$grid->SetCellValue($i, 0, $data_from_ref->[$i]->get_elapsed() );
bin/wxprofile view on Meta::CPAN
}
sub on_sub_select {
my ($self, $sub_grid, $event) = @_;
my $pkg = $sub_grid->data()->[ $event->GetRow() ];
$self->populate_call_grid($pkg);
}
sub populate_call_grid {
my ($self, $pkg) = @_;
my $busy = Wx::BusyCursor->new();
my @row_data = @{ $pkg->get_child_nodes() };
my $grid = $self->call_grid();
$grid->data( \@row_data );
$grid->ClearGrid();
my $rows = $grid->GetNumberRows();
if ($rows > scalar @row_data) {
$grid->DeleteRows(scalar @row_data, $rows - scalar @row_data);
bin/wxprofile view on Meta::CPAN
$grid->SetCellValue($i, 2, $row_data[$i]->get_function() );
}
$grid->Fit();
$grid->FitInside();
$grid->Layout();
$grid->SelectRow(0);
}
sub populate_callee_tree {
my ($self, $call_grid, $event) = @_;
my $busy = Wx::BusyCursor->new();
my $data = $call_grid->data()->[ $event->GetRow() ];
my $child_nodes = $data->get_child_nodes();
my $callee_tree = $self->callee_tree();
$callee_tree->Clear();
$callee_tree->AppendText($data->get_function() . ": " . $data->get_elapsed() . "\n");
$callee_tree->AppendText(join q{}, $self->generate_text_tree({
data => $child_nodes,
max_depth => 10,
}));
}
sub populate_callee_map {
my ($self, $call_grid, $event) = @_;
my $busy = Wx::BusyCursor->new();
my $data = $call_grid->data()->[ $event->GetRow() ];
my $callee_map = $self->callee_map();
my $file_id = ${ $data };
my $dir = $self->preferences()->get_data_dir() . "/$$";
mkdir $dir;
my $filename = "$dir/$file_id.png";
bin/wxprofile view on Meta::CPAN
}
}
last if not @result;
}
return @text;
}
sub read_profile {
my ($self, $filename) = @_;
my $busy = Wx::BusyCursor->new();
my $data = Devel::WxProf::Data->new({});
my $reader = ($filename =~m{ tmon\.out$ }x)
? Devel::WxProf::Reader::DProf->new()
: Devel::WxProf::Reader::WxProf->new();
my @result = eval {
$reader->read_file($filename)
};
if ($@) {
( run in 0.249 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )