Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. function onRequestStart() {
  2. $dat = getrusage();
  3. define('PHP_TUSAGE', microtime(true));
  4. define('PHP_RUSAGE', $dat["ru_utime.tv_sec"]*1e6+$dat["ru_utime.tv_usec"]);
  5. }
  6.  
  7. function getCpuUsage() {
  8. $dat = getrusage();
  9. $dat["ru_utime.tv_usec"] = ($dat["ru_utime.tv_sec"]*1e6 + $dat["ru_utime.tv_usec"]) - PHP_RUSAGE;
  10. $time = (microtime(true) - PHP_TUSAGE) * 1000000;
  11.  
  12. // cpu per request
  13. if($time > 0) {
  14. $cpu = sprintf("%01.2f", ($dat["ru_utime.tv_usec"] / $time) * 100);
  15. } else {
  16. $cpu = '0.00';
  17. }
  18.  
  19. return $cpu;
  20. }
  21. $start=time();
  22. onRequestStart();//запускается в начале скрипта
  23. $a=1000000;
  24. $size=10000000;
  25. $counter=0;
  26. $timeout=100000;
  27. for($i=0;$i<=$size;$i++){
  28. $a+=100;
  29. if(getCpuUsage()>80){//если загрузка процессора достигла 80% погружаем процесс на одну стотысячную секунды в сон
  30. usleep($timeout);
  31. ++$counter;
  32. }
  33. }
  34. $end=time()-$start;
  35. echo 'Спал '.$timeout*$counter/1000000 .' секунд; ушло времени '.$end.' c';
  36. gc_disable(); //чистка мусора из памяти сервера
  37.  
  38. $timeout=1000000; //Спал 8 секунд; ушло времени 48 c - результатов не дало - процессор загружался на 100%
  39. $timeout=100000; //Спал 7.5 секунд; ушло времени 46 c
  40. $timeout=10000; //Спал 7.95 секунд; ушло времени 48 c
  41. $timeout=1000; //Спал 7.888 секунд; ушло времени 49 c
  42. $timeout=100; //Спал 5.3308 секунд; ушло времени 50 c
  43. $timeout=10; //Спал 1.18124 секунд; ушло времени 47 c
  44. $timeout=1; //Спал 0.152863 секунд; ушло времени 50 c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement