Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 11:32   #11
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Да это всё глупости. Проведите реальные замеры и сами убедитесь, что ни какой разницы.
А вы проводили замеры? Как измеряли?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 23.12.2009, 15:36   #12
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Еще я где-то читал, что строка
PHP код:
<? /*код*/ ?><
иногда игнорируется движком в отличии от
PHP код:
<?php /*код*/  ?>
У меня на практике наблюдалось.
Код был с оперетором "echo"(Как мне нервы трепал )
Для обработки такой строки нужно включить опцию (поставить on)
Код:
short_open_tag = off
в PHP.INI (131-я строка)
psycho-coder вне форума Ответить с цитированием
Старый 23.12.2009, 19:24   #13
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от mv28jam
А вы проводили замеры? Как измеряли?
Замеряете время до выполнения кода, затем выполняем нужный нам код в цикле (скажем, 10000 раз), снова замеряем время, находим разность конечного и начального времени, выводим.
Arigato вне форума Ответить с цитированием
Старый 24.12.2009, 12:47   #14
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Замеряете время до выполнения кода, затем выполняем нужный нам код в цикле (скажем, 10000 раз), снова замеряем время, находим разность конечного и начального времени, выводим.
Дальнейшее будет написано с допущением, что вы делаете это в коде php скрипта. Если использовать вашу технологию измерений то разницы во времени и не будет в 99% случаев, и это вполне закономерно. Код, который мы пишем в скрипте преобразуется в транскрипт код, который выполняет zend-машина. Используем мы " или ' и . мы получим один и тот же транскрипт код, который естественно будет выполняться одно и то же время. Разница будем во времени транскрипции кода - её и надо замерять. Сделать это можно используя ф-ю include, тк подключённый код сразу обрабатывается.

код для тестирования
PHP код:
$t1microtime(true);
echo 
'<br>';
for(
$i=0;$i<100000;$i++)include('test1.php');
echo 
microtime(true)-$t1;
echo 
'<br>';
echo 
'<br>';
$t2microtime(true);
echo 
'<br>';
for(
$i=0;$i<100000;$i++)include('test2.php');
echo 
microtime(true)-$t2
пишем простенький код, с большой строкой чтобы php было что парсить в случае с "
PHP код:
//test1.php
$var1='hello';
$var2='Jack';
$var3='Bye';
$r=' test '.$var1.' test '.$var2.' This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA '
.$var3;
$r++; 
PHP код:
//test2.php
$var1='hello';
$var2='Jack';
$var3='Bye';
$r=" test $var1 test $var2 This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
$var3";
$r++; 
для чистоты эксперимента перезагружаем веб сервер и во время выполнения скрипта никаких лишних телодвижений не делаем
Код:
//после перезагрузки сервера 
9.69425106049
9.76708316803
//после продолжительной работы
9.70208191872
9.72811484337
На моей машине разница в скорости выполнения не менее 0.02, для скрипта который работает почти 10 секунд немного, но строк для парсинга тоже немного.
Вывод незначительно, но влияет.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 24.12.2009, 12:54   #15
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Вывод незначительно, но влияет.
Согласен полностью. И это УЖЕ повод для такой оптимизации.
SkyM@n вне форума Ответить с цитированием
Старый 24.12.2009, 15:06   #16
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от SkyM@n
И это УЖЕ повод для такой оптимизации.
Не согласен
Заморачиваться оптимизацией ради того, что бы выиграть 0.02 секунды в скрипте, который работает порядка 10 секунд - сомнительное занятие. Да эти 0.02 секунды на фоне 10 секунд пренебрежимо малы и пользователь ничего даже не заметить.

Последний раз редактировалось Arigato; 24.12.2009 в 15:12.
Arigato вне форума Ответить с цитированием
Старый 24.12.2009, 15:43   #17
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Затестил у себя. Разница от 1 до 1.5 секунды.

Последний раз редактировалось ssdm; 24.12.2009 в 15:46.
ssdm вне форума Ответить с цитированием
Старый 24.12.2009, 16:13   #18
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Да эти 0.02 секунды на фоне 10 секунд пренебрежимо малы и пользователь ничего даже не заметить.
Для высокозагруженного ресурса это очень даже неплохая оптимизация, если все так будут отмахиваться то получиться Vista.

Цитата:
Затестил у себя. Разница от 1 до 1.5 секунды.
А вот на слабых машинах разница значительна, под аренду и P4 предлагают. 1 секунда для пользователя это заметно.

Это я не к тому что надо всё менять срочно, а просто принять к сведению.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 24.12.2009, 17:21   #19
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Цитата:
под аренду и P4 предлагают. 1 секунда для пользователя это заметно.
Под аренду и виртуалки с 100 Mhz предлагают
Viteef вне форума Ответить с цитированием
Старый 24.12.2009, 23:04   #20
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Ну вот, результат на моём ноуте:

27.598078966141
26.442952871323

Разница в 1.15 секунды, что составляет 4% от общего времени. Если скрипт работает 1 секунду или 2 секунды, то тут разница заметна. А если пол минуты, то 1 секунда уже мала. Так что, опять же, не вижу смысла гнаться за 1 секундой при полуминутной работе скрипта.

Но если уж идёт речь о каких-то супер сложных задачах, то нужно вообще отказаться от PHP, т.к. он не самый быстрый, и перейти, скажем, на C++.

---------------------------

Вот, блин, только заметил. У меня 2-й вариант быстрее отработал чем первый!
Запустил еще, вот что выдало:
30.699023008347
30.719817876816

Так что вся эта разница находится в пределах погрешности наших измерений. Гореоптимизаторы

P.S. Вот еще 1 результат:

30.069951057434
29.019622087479

Последний раз редактировалось Arigato; 24.12.2009 в 23:13. Причина: Объеденил сообщения
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить запись в MySQL. Apache. PHP. ViNcHeStEr PHP 3 11.08.2012 11:29
Как настроить PHP на Apache? Vasily-Z PHP 9 18.12.2009 02:19
Apache mod_rewrite и GET переменные php Алориан PHP 11 22.11.2009 08:20
PHP. Чем отличается print от echo? Doz1metr Помощь студентам 3 20.09.2009 12:43
Apache + php Ururu PHP 3 25.04.2009 15:39