Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
1.8 kB · 84 lines
PHP
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485<?php
final class DarkConsoleStartupPlugin extends DarkConsolePlugin {
public function getName() { return pht('Startup'); }
public function getDescription() { return pht('Timing information about the startup sequence.'); }
/** * @phutil-external-symbol class PhabricatorStartup */ public function generateData() { return PhabricatorStartup::getPhases(); }
public function renderPanel() { $data = $this->getData();
// Compute the time offset and duration of each startup phase. $prev_key = null; $init = null; $phases = array(); foreach ($data as $key => $value) { if ($init === null) { $init = $value; }
$offset = (int)floor(1000 * ($value - $init));
$phases[$key] = array( 'time' => $value, 'offset' => $value - $init, );
if ($prev_key !== null) { $phases[$prev_key]['duration'] = $value - $phases[$prev_key]['time']; } $prev_key = $key; }
// Render the phases. $rows = array(); foreach ($phases as $key => $phase) { $offset_ms = (int)floor(1000 * $phase['offset']);
if (isset($phase['duration'])) { $duration_us = (int)floor(1000000 * $phase['duration']); } else { $duration_us = null; }
$rows[] = array( $key, pht('+%s ms', new PhutilNumber($offset_ms)), ($duration_us === null) ? pht('-') : pht('%s us', new PhutilNumber($duration_us)), null, ); }
return id(new AphrontTableView($rows)) ->setHeaders( array( pht('Phase'), pht('Offset'), pht('Duration'), null, )) ->setColumnClasses( array( '', 'n right', 'n right', 'wide', )); }
}