Mirocow / test-threads

Tests using the asynchronous save to file method

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tests using the asynchronous save to file method

$test = function ($lead){
    sleep(2);
    file_put_contents(LOG_FILE_PATH, implode('|', [$lead->id, $lead->categoryName, time()]) . "\n", FILE_APPEND);
    return true;
};

$commands = \tests\Commands::getInstance();
$commands->threads = 500;
$commands->count = 10000;
$commands->add(new \tests\commands\PcntlComponentCommand($test));
$commands->add(new \tests\commands\SwooleComponentCommand($test));
$commands->add(new \tests\commands\NoThreadsComponentCommand($test)); // only 1 thread
$commands->runTests($event);

Tests

  • threads
  • parallel
  • swoole - done
  • pcntl - done
  • popen
  • proc_open
  • queue

Run

$ cd docker
$ docker-compose up -d
$ docker-compose php php test.php

Begin tests 10000 leads write with threads: 500
Test class tests\commands\PcntlComponentCommand  it`s took 0.8094783504804 min.
Test class tests\commands\SwooleComponentCommand  it`s took 2.934555431207 min.

About

Tests using the asynchronous save to file method


Languages

Language:Shell 55.3%Language:Dockerfile 37.2%Language:PHP 6.7%Language:Smarty 0.8%