zoukankan      html  css  js  c++  java
  • Swoole 协程性能测试

    // 开启协程化,文件操作,sleep,Mysqli,PDO,streams等都变成异步IO
    Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]);
    
    $s = microtime(true);
    
    // 创建协程容器
    Co
    un(function() {
        // 开启100个协程执行usleep
        for ($c = 100; $c--;) {
            go(function () {
                for ($n = 100; $n--;) {
                    usleep(1000);
                }
            });
        }
    
        // 开启100个协程执行100次文件读写
        for ($c = 100; $c--;) {
            go(function () use ($c) {
                $tmp_filename = "/tmp/test-{$c}.php";
                for ($n = 100; $n--;) {
                    $self = file_get_contents(__FILE__);
                    file_put_contents($tmp_filename, $self);
                    assert(file_get_contents($tmp_filename) === $self);
                }
                unlink($tmp_filename);
            });
        }
    
        // 开启50个协程执行100次数据库查询
        for ($c = 50; $c--;) {
            go(function () {
                $pdo = new PDO('mysql:host=127.0.0.1;dbname=test;charset=utf8', 'root', 'root');
                $statement = $pdo->prepare('SELECT * FROM `user`');
                for ($n = 100; $n--;) {
                    $statement->execute();
                    assert(count($statement->fetchAll()) > 0);
                }
            });
        }
        
        // 开启50个协程执行100次数据库查询
        for ($c = 50; $c--;) {
            go(function () {
                $mysqli = new Mysqli('127.0.0.1', 'root', 'root', 'test');
                $statement = $mysqli->prepare('SELECT `id` FROM `user`');
                for ($n = 100; $n--;) {
                    $statement->bind_result($id);
                    $statement->execute();
                    $statement->fetch();
                    assert($id > 0);
                }
            });
        }
    });
    
    echo 'use ' . (microtime(true) - $s) . ' s';
    
  • 相关阅读:
    OD基础2
    OD基础1
    ASCII
    CE基础
    逆向3.OD插件添加及 ODBG2_Pluginnotify配合PN_NEWPROC反反调试
    逆向2.添加插件DEMO
    逆向1.检测程序是否被调试
    C# 下载模板
    layui table 中固定列的行高和table行高不一致
    sql datetime类型数据如果进行模糊查询
  • 原文地址:https://www.cnblogs.com/danhuang/p/13267762.html
Copyright © 2011-2022 走看看