=' )) {
require_once 'HTMLPurifier/Lexer/DOMLex.php';
$LEXERS ['DOMLex'] = new HTMLPurifier_Lexer_DOMLex ();
}
// custom class to aid unit testing
class RowTimer extends Benchmark_Timer {
public $name;
public function RowTimer($name, $auto = false) {
$this->name = htmlentities ( $name );
$this->Benchmark_Timer ( $auto );
}
public function getOutput() {
$total = $this->TimeElapsed ();
$result = $this->getProfiling ();
$dashes = '';
$out = '
';
$out .= "{$this->name} | ";
$standard = false;
foreach ( $result as $k => $v ) {
if ($v ['name'] == 'Start' || $v ['name'] == 'Stop')
continue;
// $perc = (($v['diff'] * 100) / $total);
// $tperc = (($v['total'] * 100) / $total);
// $out .= '' . $v['diff'] . ' | ';
if ($standard == false)
$standard = $v ['diff'];
$perc = $v ['diff'] * 100 / $standard;
$bad_run = ($v ['diff'] < 0);
$out .= '' . number_format ( $perc, 2, '.', '' ) . '% | ' . number_format ( $v ['diff'], 4, '.', '' ) . ' | ';
}
$out .= '
';
return $out;
}
}
function print_lexers() {
global $LEXERS;
$first = true;
foreach ( $LEXERS as $key => $value ) {
if (! $first)
echo ' / ';
echo htmlspecialchars ( $key );
$first = false;
}
}
function do_benchmark($name, $document) {
global $LEXERS, $RUNS;
$config = HTMLPurifier_Config::createDefault ();
$context = new HTMLPurifier_Context ();
$timer = new RowTimer ( $name );
$timer->start ();
foreach ( $LEXERS as $key => $lexer ) {
for($i = 0; $i < $RUNS; $i ++)
$tokens = $lexer->tokenizeHTML ( $document, $config, $context );
$timer->setMarker ( $key );
}
$timer->stop ();
$timer->display ();
}
?>
Benchmark:
Benchmark:
Random input was: ' . '' . htmlspecialchars ( $random ) . '';
?>