00001 <?php
00007 require_once(dirname(__FILE__).'/ProfilerSimple.php');
00008
00014 class ProfilerSimpleUDP extends ProfilerSimple {
00015 function getFunctionReport() {
00016 global $wgUDPProfilerHost, $wgUDPProfilerPort;
00017
00018 if ( $this->mCollated['-total']['real'] < $this->mMinimumTime ) {
00019 # Less than minimum, ignore
00020 return;
00021 }
00022
00023 $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
00024 $plength=0;
00025 $packet="";
00026 foreach ($this->mCollated as $entry=>$pfdata) {
00027 $pfline=sprintf ("%s %s %d %f %f %f %f %s\n", $this->getProfileID(),"-",$pfdata['count'],
00028 $pfdata['cpu'],$pfdata['cpu_sq'],$pfdata['real'],$pfdata['real_sq'],$entry);
00029 $length=strlen($pfline);
00030
00031 if ($length+$plength>1400) {
00032 socket_sendto($sock,$packet,$plength,0,$wgUDPProfilerHost,$wgUDPProfilerPort);
00033 $packet="";
00034 $plength=0;
00035 }
00036 $packet.=$pfline;
00037 $plength+=$length;
00038 }
00039 socket_sendto($sock,$packet,$plength,0x100,$wgUDPProfilerHost,$wgUDPProfilerPort);
00040 }
00041 }