示例#1
0
 public function logData()
 {
     global $wgUDPProfilerHost, $wgUDPProfilerPort;
     $this->close();
     if (isset($this->mCollated['-total']) && $this->mCollated['-total']['real'] < $this->mMinimumTime) {
         # Less than minimum, ignore
         return;
     }
     if (!MWInit::functionExists('socket_create')) {
         # Sockets are not enabled
         return;
     }
     $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
     $plength = 0;
     $packet = "";
     foreach ($this->mCollated as $entry => $pfdata) {
         if (!isset($pfdata['count']) || !isset($pfdata['cpu']) || !isset($pfdata['cpu_sq']) || !isset($pfdata['real']) || !isset($pfdata['real_sq'])) {
             continue;
         }
         $pfline = sprintf("%s %s %d %f %f %f %f %s\n", $this->getProfileID(), "-", $pfdata['count'], $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry);
         $length = strlen($pfline);
         /* printf("<!-- $pfline -->"); */
         if ($length + $plength > 1400) {
             socket_sendto($sock, $packet, $plength, 0, $wgUDPProfilerHost, $wgUDPProfilerPort);
             $packet = "";
             $plength = 0;
         }
         $packet .= $pfline;
         $plength += $length;
     }
     socket_sendto($sock, $packet, $plength, 0x100, $wgUDPProfilerHost, $wgUDPProfilerPort);
 }
示例#2
0
 /**
  * Wrapper for posix_isatty()
  * We default as considering stdin a tty (for nice readline methods)
  * but treating stout as not a tty to avoid color codes
  *
  * @param $fd int File descriptor
  * @return bool
  */
 public static function posix_isatty($fd)
 {
     if (!MWInit::functionExists('posix_isatty')) {
         return !$fd;
     } else {
         return posix_isatty($fd);
     }
 }