Xpoint
   [напомнить пароль]

Вопрос специалистам PERL

Метки: [без меток]
[удл]
2019-01-31 23:11:06 [обр] Вячеслав Крюков[досье]
сообщение промодерировано

Для примера три строки из кода.
Вопрос на 1000 руб. первому, кто даст ответ, который решит проблему со скоростью.
Итак, есть у Яндекс и Гугл сервисы, которые проверяют скорость загрузки скрипта, но не в этом суть....

Почему, когда я обрамляю $skl в ссылку, страница на 2сек дольше грузится после вывода print
А когда ссылки нет в $skl, то все отлично, без задержкек прогружается на 2 сек. быстрее.

Вопрос понятен? или требует дополнительных пояснений?

for ($i = 0; $i < 100; $i++) {
   $skl = "<a href='/cgi-bin/o.pl?$sklady[$y]==$query[0]'>Склад №$sklady[$y] ($gorod)</a>";
   $skl = "Склад №$sklady[$y] ($gorod)";

   print <<OUT if $data[3] > 0;
<tr>
   <td align=center $class><input type='radio' name='$cccnow' value='$query[0]=$sklady[$y]=$katalozh=$data[3]=$data[4]' id='$query[0]=$sklady[$y]=$katalozh=$data[3]=$data[4]'>
      <span class='data-count'></span><br>
      <label for='$query[0]=$sklady[$y]=$katalozh=$data[3]=$data[4]'></label>
   </td>
   <td width=100% style='padding-left:30' $class>
      <span class=stels></span>
      $ostatok<br>
      <nobr><font class=ce>от $data[3]</font> руб. ОПТ / <font class=ce>$data[4]</font> руб.</nobr><br>
      $skl<br>$brand $razmer</font>
   </td>
</tr>
OUT
}
спустя 5 часов [обр] Евгений Седов aka KPbIC(18/187)[досье]
Посмотрите сколько занимает каждая стадия выполнения запроса: отработка скрипта, передача на клиент, отрисовка. Тогда станет понятно как исправить.
спустя 18 минут [обр] Jared(3/26)[досье]
сообщение промодерировано
Вячеслав Крюков[досье] попробуйте конкатенацию:
$skl = '<a href="/cgi-bin/o.pl?'.$sklady[$y].'=='.$query[0].'">Склад №'.$sklady[$y].' ('.$gorod.')</a>';
спустя 3 часа 58 минут [обр] Вячеслав Крюков[досье]
Jared, как мне перекинуть вам 1000 руб.?
Это действительно помогло, но объясните, почему это работает?
Почему нужно именно так делать?
через конкатенацию?
спустя 2 часа 10 минут [обр] Вячеслав Крюков[досье]
Хотя нет, вроде перепроверил не заработало....
спустя 39 минут [обр] Евгений Лепихин[досье]

Несколько уточняющих вопросов:

  1. С какой целью этот кусочек HTML генерится в цикле по $i, когда от неё ничего не зависит? Может проще сгенерить один раз, а потом 100 раз вывести готовый кусок в OUT?
  1. Это CGI скрипт. Вы пробовали запустить его из командной строчки, убедиться что скорости действительно отличаются в разы?

Если из командной строчки скорость не отличается, то можно начинать высказывать разные конспирологические теории, типа анализа ссылок яндексом или переполнения кривого буфера где-то между вашим скриптом и Яндексом.

Предложенный выше способ заменить конкатенацию в одном синтаксисе на конкатенацию в другом синтаксисе ничего не даст: интерпретатор оба варианта свернет в один и тот же AST.

спустя 51 минуту [обр] Вячеслав Крюков[досье]

в цикл я его поставил для примера только, хотя у меня в итоге запрос идет для 100 каталожных номеров, поэтому в целом это так и есть....

В плане того, что Яша превирает это вряд ли, так как и по времени я вижу, что после введения <a href действительно дольше висит страница, как раз на эти 2 сек....

спустя 9 часов [обр] Евгений Лепихин[досье]

К сказанному добавить нечего. Замеряйте скорость в командной строке. У перла нет никаких объективных причин тормозить в приведенном куске кода (если, конечно, в $query[0] лежит не десяток мегабайт).

Проблема где-то либо в обработке хендлера OUT, либо в веб-сервере, либо где-то ещё по пути до браузера.

спустя 2 минуты [обр] Евгений Лепихин[досье]
Ещё можно померить скорость с помощью curl/wget, чтобы исключить проблемы со стороны JS.
Powered by POEM™ Engine Copyright © 2002-2005