Symfony - изображение в ответ - скорость, оптимизация

Я динамически генерирую графику в моем контроллере:

  1. если файл не существует (уникальный имя файла) затем сгенерируйте графику и сохраните ее

  2. return RedirectResponse ($ url)

(3. Я также пробовал:

    $fp = fopen($url, "rb");
    $str = stream_get_contents($fp);
    fclose($fp);

    $response = new Response($str, 200);
    $response->headers->set('Content-Type', 'image/png');
    return $response;

)

Мне нужно, чтобы он генерировал динамически юзербары для пользователей [на этом графике некоторые текст будет автоматически обновляться, если на моих сайтах будут внесены некоторые изменения].

Поэтому для меня важно, чтобы этот скрипт работал быстро и не убивал мой сервер / коммутатор. Для этого я сделал кеш, в котором все сгенерировано графика хранится.Но у меня проблема со скоростью, решения, которые я описал выше, довольно медленные, когда я тестировал его в Chrome с помощью инструмента разработчика (F12), он показывает мне, что оба решения (2. и 3.) занимает около ~ 1 секунды (когда одна и та же графика [без контроллеров и т. Д. Просто перенаправляет URL-адрес в .png] загружает 44 мс).

Так что, если только для меня это занимает около ~ 1 секунды на графику, то если, например, 1000 пользователей будут генерировать в Я думаю, что в то же время этот рисунок может замедлить работу моего сайта.

Помогите, пожалуйста, знаете ли вы более быстрые способы сделать это?

PS. Перенаправление для меня не самое главное, потому что я бы предпочел оставить url как есть, например smth / username / userbar / insted of smth / img / userbars / cache / blabla.png. Но если будет намного быстрее, то выдержу :).

РЕДАКТИРОВАТЬ: Для ясности: я не ищу решения для кеширования изображений, моя проблема в том, что возврат изображений через контроллер (уже сгенерированные изображения, только с ftp) занимает около 1 секунды, тогда как обычно, если вы это делаете, например

           <img src="direct_url_to_png"> 

занимает около 44 мсек.

5
задан Wojciech Kulik 5 February 2012 в 13:37
поделиться