Skip to content

Instantly share code, notes, and snippets.

@drsnyder
Created September 5, 2014 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drsnyder/85b3a4d3381ea6232136 to your computer and use it in GitHub Desktop.
Save drsnyder/85b3a4d3381ea6232136 to your computer and use it in GitHub Desktop.
<?php
class FooBar { }
$fooBar = new FooBar();
$iterations = 1e6;
$assignment = false;
$start = microtime(true);
for ($i=0; $i<$iterations; $i++) {
if ($fooBar instanceof FooBar) {
$assignment = true;
}
}
$instanceOnly = microtime(true) - $start;
fprintf(STDERR, "instance only: %2.2f\n", $instanceOnly);
$assignment = false;
$start = microtime(true);
for ($i=0; $i<$iterations; $i++) {
assert($fooBar instanceof FooBar);
$assignment = true;
}
$assert = microtime(true) - $start;
fprintf(STDERR, "assert: %2.2f\n", $assert);
fprintf(STDERR, "assert adds %2.6f ms overhead per invocation\n", ( ($assert - $instanceOnly) / $iterations ) * 1000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment