Skip to content

Instantly share code, notes, and snippets.

Sergei Kukhariev sergekukharev

Block or report user

Report or block sergekukharev

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View Latency Numbers Every Programmer Should

Latency Comparison Numbers (~2012)

L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cachereference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
View mockExample.php
class Bob_Validator_BooleanTest extends PHPUnit_Framework_TestCase
public function setUp() {
$this->authorizerMock = $this->getMock(Authorizer::class);
View fakeExample.php
class AuthorizerFake implements Authorizer {
public $allowedUsers = [
'test_user' => '123456',
'test_admin' => '123456'
public authorize($username, $password) {
return array_key_exists($this->allowedUsers, $username)
&& $this->allowedUsers[$username] === $password;
View spyExample.php
class AcceptingAuthorizerSpy implements Authorizer {
public $authorizeWasCalled = false;
public authorize($username, $password) {
$this->authorizeWasCalled = true;
return true;
View stubExample.php
class AcceptingAuthorizerStub implements Authorizer {
public function authorize($username, $password) {
return true;
View dummyExample.php
class DummyAuthorizer implements Authorizer {
public function authorize($username, $password) {
return null;
You can’t perform that action at this time.