Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
_Psih Не тестировал пока, но кажется что разница ОЧЕНЬ мала (по крайней мере в PHP5) и причём в пользу первых
Добавлено спустя штаны Потестировал одно и тоже...
Добавлено спустя носки Есть небольшой перекос в пользу одинарных, но не более 0.2%
Добавлено спустя что осталось Перекос прыгает, то туда то сюда, одним словом одно и тоже
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
Строка типа
Код:
$i . "Vladson"
Процентов на 40-50 быстрее чем
Код:
"$iVladson"
Но к одинарным и двойным кавычкам это мало относится... Добавлено спустя штаны Посмотрел после твоей подписи профиль, и понял что мне надо такую-же подпись
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
virus писал(а):
Добавлено спустя штаны Посмотрел после твоей подписи профиль, и понял что мне надо такую-же подпись
Бедный, как ты вообще на нём работаешь... ХОтя у тя есественно не WinXP точно стоит... я на XP'ке работаю...
P.S. Следующий пост будет подробный разбор полётов с ' и " кавычками, я тут поставил дома Apache с PHP4 и PHP5 и протестил Скрины и скрипт прилагаются Добавлено спустя 6 минут, 15 секунд и так, конфа компа в профиле. Софт: Windows XP SP2, с отключенными сервисами лишними. Apache 2.0.55 PHP 4.4.1 PHP 5.0.5
$str_arr_assoc['el1'] = genString(); $content = '<table cellspacing="0" cellpadding="10" border="1">'; $t1 = microtime(); $content .= '<tr> <td>Присваивание строки в \'\' кавычках переменной без вставки в неё других переменных</td> <td>Присваивание строки в "" кавычках переменной без вставки в неё других переменных</td> </tr> <tr>'; for ($i = 0; $i < CNT; $i++) { $string = 'This is just a random string wich I wrote for test =]'; } $t2 = microtime(); $content.='<td align="right"><b>'.getTime($t1, $t2).'</b></td>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = "This is just a random string wich I wrote for test =]"; } $t2 = microtime(); $content.='<td align="left"><b>'.getTime($t1, $t2).'</b></td>';
$content .= '</tr> <tr> <td>Присваивание строки в \'\' кавычках переменной со вставкой переменной в середину строки</td> <td>Присваивание строки в "" кавычках переменной со вставкой переменной в середину строки, используя механизм парсинга строк</td> </tr> <tr>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = 'This is just a random '.$str.' string wich I wrote for test =]'; } $t2 = microtime(); $content.='<td align="right"><b>'.getTime($t1, $t2).'</b></td>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = "This is just a random $str string wich I wrote for test =]"; } $t2 = microtime(); $content.='<td align="left"><b>'.getTime($t1, $t2).'</b></td>';
$content .= '</tr> <tr> <td>Присваивание строки в \'\' кавычках переменной со вставкой элемента массива c цифровыми ключами в середину строки</td> <td>Присваивание строки в "" кавычках переменной со вставкой элемента массива c цифровыми ключами в середину строки, используя механизм парсинга строк</td> </tr> <tr>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = 'This is just a random '.$str_arr_num[0].' string wich I wrote for test =]'; } $t2 = microtime(); $content.='<td align="right"><b>'.getTime($t1, $t2).'</b></td>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = "This is just a random {$str_arr_num[0]} string wich I wrote for test =]"; } $t2 = microtime(); $content.='<td align="left"><b>'.getTime($t1, $t2).'</b></td>';
$content .= '</tr> <tr> <td>Присваивание строки в \'\' кавычках переменной со вставкой элемента массива c ассоциативными ключами в середину строки</td> <td>Присваивание строки в "" кавычках переменной со вставкой элемента массива c ассоциативными ключами в середину строки, используя механизм парсинга строк</td> </tr> <tr>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = 'This is just a random '.$str_arr_assoc['el1'].' string wich I wrote for test =]'; } $t2 = microtime(); $content.='<td align="right"><b>'.getTime($t1, $t2).'</b></td>';
$t1 = microtime(); for ($i = 0; $i < CNT; $i++) { $string = "This is just a random {$str_arr_assoc['el1']} string wich I wrote for test =]"; } $t2 = microtime(); $content.='<td align="left"><b>'.getTime($t1, $t2).'</b></td>';
Следующий пост собственно результаты Добавлено спустя 19 минут, 20 секунд И так, скрипт дан выше, в коде всё легко и понятно я надеюсь. Не лучее оформление конечно, но я не задавался целью написать это красиво. Я провёл 2 теста для каждой версии PHP - цикл в 10 000 иретаций и цикл в 100 000 иретаций. Единицы измерений - секунды.
Это результаты циклов в 10 000 иретаций:
PHP4 #77
PHP5 #77
Как видите, в обоих случаях использование ' ' кавычек даёт прирост в скорости в 3-4 раза. Кстати, чем объясняется то, что PHP5 отработал медленнее чем PHP4 - я незнаю. Возможно не в очень удачный момент запустил, у меня не сервер всётаки Впрочем, скорости PHP4 и PHP5 мы не сравнивали.
А теперь перейдём к тестам с 100 000 иретаций, т.к. они более наглядно показывают разницу в скорости выполнения
PHP4 #77
PHP5 #77
Картина идентична, только числа больше
Выводы: Первая строка теста показала что в каких кавычках присваивать обычную строку - не важно - скорость выполнения практически не меняется, хоть ' ' кавычки и чуть быстрее. Тут решать каждому индивидуально, хотя лучше в любом случае ' ' кавычки, если вы их используете в остальных случаях, что бы стиль был одинаковый Остальные 3 теста показали что превосходство ' ' кавычек над " " по скорости составляет от 3 до 4 раз.
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
_Psih писал(а):
Бедный, как ты вообще на нём работаешь...
Ну у меня помимо него ещё AthlonXP-1400Mhz и Duron-1600
Меня ты не убедил ибо разница хоть и ощутимая однако реального прироста от этого не получишь.
Там где нужна экономия 0.0000001сек кавычки вовсе не нужны (математические вычисления, рекурсивная обработка данных и.т.д.)
А так-же все эти тесты были лишними потому что по логике ясно что двойные кавычки не просто присваиваются но и проверяются на наличие в них переменных, так что прирост вполне логичен...
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
virus писал(а):
А так-же все эти тесты были лишними потому что по логике ясно что двойные кавычки не просто присваиваются но и проверяются на наличие в них переменных, так что прирост вполне логичен...
Это мы с тобой знаем это, а вот скока народу понятия не имеют про разницу между ' и " кавычками... Да, тест слегка надуманный - но более реального примера у меня нету под рукой...
Подскажите, если не трудно, в чем проблема. Есть сайт, где установлен полный набор софта. Всё работает, но потребовалась загрузка файлов от клиентов на сервер по http.
в php.ini
Код:
file_uploads = On upload_tmp_dir = что-то upload_max_filesize = что-то
html
Код:
<html><bodY> <FORM ENCTYPE="multipart/form-data" ACTION="upload2.phtml" METHOD=POST> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"><!-- макс. размер --> Имя файла: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Отправить"> (нажмите кнопку <b>ОБЗОР</b>, затем <b>ОТПРАВИТЬ</b>) </FORM> </body></html>
php
Код:
<? echo "
Вы загрузили файл размером: <font color=red><b>$userfile_size</b></font> байт<br><br>
На вашем компьютере файл назывался: <font color=red><b>$userfile_name</b></font><br><br>
На нашем сервере ваш файл был записан для временного храниения по адресу и под именем <font color=red><b>$userfile</b></font><br><br>
Ниже его содержимое:<br> <font color=blue><pre>";
// для тех, кто не знает, команда echo implode("",file("имя_файла")); // выводит содержимое "имя_файла" на экран
echo implode("",file($userfile));
?>
Про настройки апача - не скажу, не спец. Так это не робит. Запрос уходит, а сервак молчит и ничего не разбирает. Может подскажете, что и где глянуть. Спасибо. Добавлено спустя 1 час, 58 минут, 12 секунд Вопрос снят. Админы перемудрили.
Ты хоть бы описал что она делает... А то я конечно не дурак, но и не мозг в матеиатике Добавлено спустя 20 минут, 32 секунды Кстати, вышел PHP 5.1 С момента выхода PHP 5, этот релиз ещё одна очень значимая ступень в развитии PHP, т.к. он обладает очень повышенной скоростью работы, по предварительным тестам, что я отрыл в интернете, почти в 2.5 раза. Что-ж, как доберусь до него, сделаю небольшой обзор и тесты.
Вышел первый официальный релиз PHP 5.1. Пользователям PHP 5.0 рекомендуется срочно обновиться, так как в PHP 5.1 исправлен ряд серьезных ошибок связанных с безопасностью.
Из новых возможностей можно отметить:
Полностью переписан код работы с датами и временем. Проведена значительная оптимизация производительности, скорость некоторых операций, по сравнению с 4.4 и 5.0, увеличилась почти в 4 раза ! PDO (PHP Data Objects) расширение теперь активно по умолчанию; Около 30 новых функций; Библиотеки PCRE и SQLite обновлены до последний версий; Исправлено около 400 ошибок; PEAR обновлен до версии 1.4.5.
Так же важная информация по миграции на PHP 5.1.0 с любой более ранней версии PHP, включая беты и релиз кандидаты PHP 5.1.0 : http://www.php.net/README_UPGRADE_51.php
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
Ставил я себе, рано ещё на него переходить, думаю что к версии 5.1.9 исправят ещё много критических недоработок (перечислять не буду, всё это есть уже на сайте php.net)
А функция моя считает число PI с помощью одного из самых примитивных способов (на спектруме аналог этого скрипта пол часа рожает)
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
virus писал(а):
Ставил я себе, рано ещё на него переходить, думаю что к версии 5.1.9 исправят ещё много критических недоработок (перечислять не буду, всё это есть уже на сайте php.net)
А функция моя считает число PI с помощью одного из самых примитивных способов (на спектруме аналог этого скрипта пол часа рожает)
А зачем тебе оно? Просто так, тренировка? На самом деле тебе тот-же результат выдаст функция pi() или константа M_PI, с такой же точностью, т.к. точность чисел определяется дерективой precision в php.ini P.S. считает кстати не совсем правильно. Это из мана по PHP: 3.1415926535898, а это то, что из твоего скрипта получилось: 3.143555466911
P.S.S. Подправь свой скриптик, а то у тебя объявлена функция sqrt_pi_counter(), а вызывается pi_counter()
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
_Psih писал(а):
А зачем тебе оно?
Дешёвая замена онанизма.
_Psih писал(а):
считает кстати не совсем правильно
Дык она считает не просто приблизителтно а очень (точность зависит от входного параметра) и чтоб посчитать 3,141592653589 этому скрипту надо несколько дней....
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
virus писал(а):
_Psih писал(а):
считает кстати не совсем правильно
Дык она считает не просто приблизителтно а очень (точность зависит от входного параметра) и чтоб посчитать 3,141592653589 этому скрипту надо несколько дней....
Моя умилённо плакатЪ
Ну если от нефиг делать... тады мона Но я бы лучше погулять пошёл
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения