Как ускорить изменение размера изображения с помощью модуля изображений Kohana - PullRequest
0 голосов
/ 23 августа 2011

У меня есть простой скрипт, который динамически берет изображения из корзины Cloudfront, изменяет их размер, преобразует их в действительный URL-адрес данных и отображает их на странице.

У меня проблема с временем загрузки. Загрузка приведенного ниже сценария занимает ~ 12 секунд (примерно ~ 1 - 1,5 секунды на изображение)

Есть ли какие-либо предлагаемые способы ускорить это?

$mango = Mango::factory('illustration')->load(9)->as_array();

$images = array();

foreach($mango as $data)
{
  $image = Image::factory('cloudfrontbucket' . urlencode($data->illustration), 'imagick');
  $image = $this->data_uri($image->resize(200), 'image/png');   

  $images[$data->id]['image'] = $image;
  $images[$data->id]['id']  = $data->id;
}

Заранее спасибо.

1 Ответ

0 голосов
/ 25 августа 2011

Вы не можете, по сути, ускорить сам процесс изменения размера изображения. Модуль использует GD или ImageMagick, которые являются основными расширениями php и работают так быстро, как могут. Единственные накладные расходы - это обычная кохана. Если вы хотите ускорить процесс, вы должны найти способ ускорить саму Kohana, например Gearman, как заметил @ThePixelDeveloper.

Если вы не можете уменьшить нагрузку достаточно, вы можете обойти эту проблему, чтобы ограничить количество обрабатываемых снимков за один раз. В следующий раз, когда скрипт будет запущен (через cronjob или если у вас нет доступа к crontab cron бедняков), просто проверьте, какие картинки еще не обработаны, и сделайте несколько.

...