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());
 | |
| }
 | |
| 
 |