You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			46 lines
		
	
	
		
			945 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			945 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
$chan = new Swoole\Channel(1024 * 256);
 | 
						|
$n = 100000;
 | 
						|
$bytes = 0;
 | 
						|
 | 
						|
if (pcntl_fork() > 0)
 | 
						|
{
 | 
						|
    echo "Father\n";
 | 
						|
    for ($i = 0; $i < $n; $i++)
 | 
						|
    {
 | 
						|
        $data = str_repeat('A', rand(100, 200));
 | 
						|
        if ($chan->push($data) === false)
 | 
						|
        {
 | 
						|
            echo "channel full\n";
 | 
						|
            usleep(1000);
 | 
						|
            $i--;
 | 
						|
            continue;
 | 
						|
        }
 | 
						|
        $bytes += strlen($data);
 | 
						|
//        echo "#$i\tpush ".strlen($data)." bytes\n";
 | 
						|
    }
 | 
						|
 | 
						|
    echo "total push bytes: $bytes\n";
 | 
						|
    var_dump($chan->stats());
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
    echo "Child\n";
 | 
						|
    for ($i = 0; $i < $n; $i++)
 | 
						|
    {
 | 
						|
        $data = $chan->pop();
 | 
						|
        if ($data === false)
 | 
						|
        {
 | 
						|
            echo "channel empty\n";
 | 
						|
            usleep(1000);
 | 
						|
            $i--;
 | 
						|
            continue;
 | 
						|
        }
 | 
						|
        $bytes += strlen($data);
 | 
						|
//        echo "#$i\tpop " . strlen($data) . " bytes\n";
 | 
						|
    }
 | 
						|
    echo "total pop bytes: $bytes\n";
 | 
						|
    var_dump($chan->stats());
 | 
						|
}
 | 
						|
 |