Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Оптимизация PHP скрипта
 
 автор: FileTimeout   (08.07.2008 в 18:09)   письмо автору
 
 

Есть такой скрипт:


<?

header
('Content-Type: image/gif');

$img imagecreatefromgif ('pic/hp_empty.gif');

$img_2 imagecreatefromgif ('pic/hp_ok.gif');

$hp 500;
$hp_now 250;


$hp_k=round($hp_now*100/$hp,2);

$kol=round(128*$hp_k/100);

imagecopyresampled ($img$img_20000$kol121212);

$white imagecolorallocate($img255255255);
imagestring($img1402"$hp_now/$hp"$white);
imagestring($img132"HP"$white);

imagegif($img);


?>


Данный скрипт потребляет от 1 до 5 процентов CPU. Жалуется хостер.
Действительно ли он может грузить так?

И как его оптимизировать можно?

   
 
 автор: Trianon   (08.07.2008 в 23:37)   письмо автору
 
   для: FileTimeout   (08.07.2008 в 18:09)
 

>imagecopyresampled ($img, $img_2, 0, 0, 0, 0, $kol, 12, 12, 12);
>imagegif($img);
>Действительно ли он может грузить так?
Что Вас удивляет?

>И как его оптимизировать можно?
Сохранять построенные картинки на диск, а не строить на лету.

   
 
 автор: FileTimeout   (09.07.2008 в 00:20)   письмо автору
 
   для: Trianon   (08.07.2008 в 23:37)
 

Данные постоянно изменяются, генерируется полоса HP в игре... Кешировать думаю никак не получится. :(

   
 
 автор: Trianon   (09.07.2008 в 00:35)   письмо автору
 
   для: FileTimeout   (09.07.2008 в 00:20)
 

Полосу HP нафиг не срослось лепить ни на какую картинку.
Для неё не нужно вообще изображений создавать.

   
 
 автор: FileTimeout   (09.07.2008 в 01:10)   письмо автору
 
   для: Trianon   (09.07.2008 в 00:35)
 

Хочется, чтобы была не однотонная :) Поэтому и леплю... Рисовать не очень умею с помощью PHP.

   
 
 автор: FileTimeout   (09.07.2008 в 03:32)   письмо автору
 
   для: FileTimeout   (09.07.2008 в 01:10)
 

Сделал сейчас одну картинку, полностью кодом генерируется отдается клиенту и потом удаляется. Посмотрим как с нагрузкой будет. Спасибо за совет!

P.S. Думал процессор жрать будет меньше когда уже готовые склеиваем... А тут вон как говорите. Да и код по весу значительно увеличился :) Еще раз спасибо за совет.

   
 
 автор: FileTimeout   (09.07.2008 в 03:55)   письмо автору
 
   для: FileTimeout   (09.07.2008 в 03:32)
 

Все сделал и встроил, по прежнему жрет CPU. Даже еще больше...

Не подскажите, что еще можно сделать?

   
 
 автор: sim5   (09.07.2008 в 04:23)   письмо автору
 
   для: FileTimeout   (09.07.2008 в 03:55)
 

Вы, для начала, удаляйте открытые дескрипторы...

   
 
 автор: FileTimeout   (09.07.2008 в 04:47)   письмо автору
 
   для: sim5   (09.07.2008 в 04:23)
 

Если вы, про imagedestroy($img); то сейчас это сделал.

Если про что-то другое, то подробней объясните...

   
 
 автор: sim5   (09.07.2008 в 04:57)   письмо автору
 
   для: FileTimeout   (09.07.2008 в 04:47)
 

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования