2010-12-02 2 views
-1

У меня есть PHP-скрипт, который работает в цикле для x раз. Код очень минимальный и выполняет проверки. Некоторые петли будут работать в течение 1 секунды друг от друга, и это варьируется. Некоторые петли будут работать с задержкой до 8 секунд.Как настроить сервер для быстрого запуска PHP-скрипта?

Как или что я могу настроить/настроить на сервере (или поручить менеджеру моего выделенного сервера) сократить время между циклами до миллисекунд (или как можно быстрее), а не от 1 до 8 секунд?

Спасибо!

PHP код

<style type="text/css"> 
#check { font: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 40px; } 
.red { color: #C00; } 
.green { color: #060; } 
</style> 

<?php  date_default_timezone_set('Australia/Brisbane'); $var1 = "variable";  $var2 = 1;  $var3=="no"; 
       while ($var2 <= 50)  { 

         $sApiUrl = "https://www.apiurl.com/"; 

         $aParams = Array(
            'uid'  => "user", 
            'pw'  => "key",  
            'command' => "command",  
            'sld'  => "main",   
            'tld'  => "ext");   


         $oCurl = curl_init(); 
         curl_setopt($oCurl, CURLOPT_URL, $sApiUrl); 
         curl_setopt($oCurl, CURLOPT_POST, 1); 
         curl_setopt($oCurl, CURLOPT_POSTFIELDS, $aParams); 
         curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, true); 
         curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); 
         $sResponse = curl_exec($oCurl); 
         curl_close($oCurl); 


         $oOutput = new SimpleXmlElement($sResponse); 


         foreach ($oOutput as $v1) 
          { 
          foreach ($v1 as $v2) 
          { 
           foreach ($v2 as $v3) 
           { 
            foreach ($v3 as $v4=>$temp) 
            { 
             if($v4=="text") 
              $var4 = $temp; 
              if($var4=="true") 
               {           
                $aParams = Array(
                'uid'  => "user", 
                'pw'  => "key", 
                'command' => "command", 
                'sld'  => "main",  
                'tld'  => "ext", 
                'dosomething' => "yes");  


                $oCurl = curl_init(); 
                curl_setopt($oCurl, CURLOPT_URL, $sApiUrl); 
                curl_setopt($oCurl, CURLOPT_POST, 1); 
                curl_setopt($oCurl, CURLOPT_POSTFIELDS, $aParams); 
                curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, true); 
                curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); 
                $sResponse = curl_exec($oCurl); 
                curl_close($oCurl); 

                $var3=="yes"; 
               }       
            } 
           } 
          } 
          }   $checktime = date('h:i:s A');       echo "<div id=\"check\">$checktime, checked $var1<br>";   if ($var4=="true")   echo "<div class=\"green\"> $var4";   else   echo "<div class=\"red\"> $var4"; 
       if ($var3=="yes")   echo " and yes"; echo "</div></div>";  $var3=="no"; $loops++; }  ?> 

Информация о процессоре

Процессор # 1 Производитель: GenuineIntel Процессор # 1 Имя: Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 1 скорость: 1995.120 МГц Размер кэша процессора 1: 6144 КБ

Процессор # 2 Производитель: GenuineIntel Процессор # 2 Название: Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 2 Скорость: 1995,120 МГц Процессор размер # 2 Кэш: 6144 KB

Процессор # 3 Производитель: GenuineIntel Процессор # 3 Название: Intel (R) Xeon (R) E5405 CPU @ 2.00GHz Процессор # 3 скорость: 1995,120 МГц Процессор размер кэша # 3: 6144 KB

Процессор # 4 Производитель: GenuineIntel Процессор # 4 Имя : Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 4 скорость: 1995.120 МГц Размер кэша процессора 4: 6144 КБ

Процессор # 5 Производитель: GenuineIntel Процессор # 5 Название: Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 5 Скорость: 1995,120 МГц Процессор размер # 5 кэша: 6144 KB

Процессор # 6 Производитель: GenuineIntel Процессор # 6 Название: Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 6 скорость: 1995,120 МГц Процессор размер # 6 кэша: 6144 KB

Процессор # 7 Производитель : GenuineIntel Процессор # 7 Название: Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 7 Скорость: 1995,120 МГц Процессор размер # 7 кэш: 6144 KB

Процессор # 8 Производитель: GenuineIntel Процессор # 8 Название: Intel (R) Xeon (R) CPU E5405 @ 2.00GHz Процессор # 8 скорость: 1995.120 МГц Процессор размер # 8 Кэш: 6144 KB

Информация о памяти

памяти для аварийного ядра (0x0 до 0x0) notwithin допустимый диапазон Память: 8302344k/9175040k доступен (2176k код ядра, 80272k зарезервирован, 901k данные, 228K первонач 7466304k Highmem)

информация о системе

Linux server.myserver.com 2.6.18-194.17.1.el5PAE # 1 SMP Wed 29 сентября 13: 3 1:51 EDT 2010 i686 i686 i386 GNU/Linux

Физические диски

устройство SCSI SDA: 1952448512 512-байтных секторов hdwr (999654 MB) SDA: Защита от записи выключен SDA: Режим Sense: 03 00 00 08 устройство SDA SCSI: кэш диска: написать назад SDA устройства SCSI: 1952448512 512-байтовых секторов hdwr (999654 MB) SDA: Защита от записи отключена SDA: Режим Sense: 03 00 00 08 SCSI устройство SDA : кэш накопителя: запись sd 0: 1: 0: 0: прикрепленный диск scsi sda sd 4: 0: 0: 0: Attached SCSI съемный диск SDB с.о. 0: 1: 0: 0: Attached SCSI родовое СГ4 тип 0 с.о. 4: 0: 0: 0: Attached SCSI родовое SG7 тип 0

Использование Текущая память

  total  used  free  shared buffers  cached 

Mem: 8306672 7887632 419040 0 508076 6496876 -/+ буферы/кэш: 882680 7423992 Swap: 4095992 428 4095564 Итого: 12402664 7888060 4514604

Current Disk Usage

Filesystem Размер Используется Свободна Использование% Установленный на /DEV/картографа/VolGroup00-LogVol00 898G 200G 653G 24%/ /DEV/sda1 99M 19M 76М 20%/загрузки ни один 0 4,0 г 4.0G 0%/dev/shm /var/tmpMnt 4.0G 161M 3.6G 5%/tmp

+1

Нам нужна более подробная информация.Нужны примеры кода и информация о настройке сервера. – 2010-12-02 05:32:40

+0

Добавлена ​​информация о сервере, скоро будет добавлен код – iCeR 2010-12-02 05:51:11

ответ

1

Вы используете базы данных, электронные письма, веб-службы или любой другой подобный компонент? Как правило, производительность скрипта PHP в наибольшей степени зависит от них.

Вы можете использовать инструмент профилирования, такой как Xdebug, для анализа вашего скрипта и поиска самых медленных областей кода. Затем вы можете оптимизировать этот код (например, внутренние циклы) для повышения производительности.

1

Я не использовал это лично, но я подозреваю, что вам нужно изучить использование curl_multi * stuff в PHP - это позволяет вам выполнять сразу несколько запросов.

См http://php.net/manual/en/function.curl-multi-init.php

Ваши узкое место почти наверняка будет делать соединение HTTP последовательно. AFAIK функции curl_multi_ * позволят выполнять их параллельно.

 Смежные вопросы

  • Нет связанных вопросов^_^