$start = microtime(true);
while ($i < 1000000) {
$t="text {$text} text {$text} text {$text}";
++$i;
}
$test[0] = round(microtime(true) - $start, 6);
$start = microtime(true);
while ($i < 1000000) {
$t="text ";$x.=$text;$x="text ";$x.=$text;$x="text ";$x.=$text;
++$i;
}
$test[1] = round(microtime(true) - $start, 6);
$start = microtime(true);
while ($i < 1000000) {
$t="text ".$text." text ".$text." text ".$text;
++$i;
}
$test[2] = round(microtime(true) - $start, 6);
$start = microtime(true);
while ($i < 1000000) {
$t='text '.$text.' text '.$text.' text '.$text;
++$i;
}
$test[3] = round(microtime(true) - $start, 6);
Результаты:
array(4) {
[0]=>
float(6.273794)
[1]=>
float(2.0E-6)
[2]=>
float(2.0E-6)
[3]=>
float(1.0E-6)
}
Спустя 16 минут, 18 секунд (22.03.2012 - 08:03) Visman написал(а):
А где изначальное задание переменной $text?
И вот эта строка
ни как у меня не вяжется с остальными тремя вариантами.
И вот эта строка
$t="text ";$x.=$text;$x="text ";$x.=$text;$x="text ";$x.=$text;
ни как у меня не вяжется с остальными тремя вариантами.
Спустя 6 минут, 12 секунд (22.03.2012 - 08:09) EvilDev написал(а):
Visman
Зачем тебе изначальное значение?
>> ни как у меня не вяжется с остальными тремя вариантами.
Почему?
Зачем тебе изначальное значение?
>> ни как у меня не вяжется с остальными тремя вариантами.
Почему?
Спустя 3 минуты, 36 секунд (22.03.2012 - 08:13) Visman написал(а):
Цитата (EvilDev @ 22.03.2012 - 13:09) |
Почему? |
Вот
$t="text ";
$x.=$text;
$x="text ";
$x.=$text;
$x="text ";
$x.=$text;
Спустя 2 минуты, 30 секунд (22.03.2012 - 08:15) Visman написал(а):
Цитата (EvilDev @ 22.03.2012 - 13:09) |
Зачем тебе изначальное значение? |
Как зачем? Иначе 1000000 раз ошибки выскакивают в логе!
Спустя 3 минуты, 6 секунд (22.03.2012 - 08:18) inpost написал(а):
EvilDev
Если говорить о выводе, то ?>text<?php - самый быстрый.
Если говорим о реальных серверах, то важное замечание:
.$text. БЫСТРЕЕ РАБОТАЕТ в 10 раз, чем . $text .
П.С. это я о пробелах
Если говорить о выводе, то ?>text<?php - самый быстрый.
Если говорим о реальных серверах, то важное замечание:
.$text. БЫСТРЕЕ РАБОТАЕТ в 10 раз, чем . $text .
П.С. это я о пробелах
Спустя 1 минута, 48 секунд (22.03.2012 - 08:20) EvilDev написал(а):
inpost
Имеешь ввиду пробелы?
Имеешь ввиду пробелы?
Спустя 1 минута, 52 секунды (22.03.2012 - 08:22) inpost написал(а):
П.С. я выше дописал о пробелах
А одинарные кавычки не парсятся регулярками на содержание внутри данных, вроде переменных, в отличии от двойных. В этом же и есть разница. Но для \n\r мы используем уже двойные.
Тут вопрос, использовать сразу двойные везде, или одинарные, а где перенос - конкатенацию строк и двойные... или в переменной хранить вообще.
А одинарные кавычки не парсятся регулярками на содержание внутри данных, вроде переменных, в отличии от двойных. В этом же и есть разница. Но для \n\r мы используем уже двойные.
Тут вопрос, использовать сразу двойные везде, или одинарные, а где перенос - конкатенацию строк и двойные... или в переменной хранить вообще.
Спустя 2 минуты, 56 секунд (22.03.2012 - 08:25) EvilDev написал(а):
inpost
По сути тогда получается, что одинарные должны работать быстрее
По сути тогда получается, что одинарные должны работать быстрее
Спустя 2 минуты, 25 секунд (22.03.2012 - 08:27) inpost написал(а):
странно, я никогда эту сокращенную запись не понимал в виде 1.0Е или 2.0Е.
Если в милисекунды перевести, просто цикл сделай в 100 раз больше, вместо 1 млн - 100 млн. Получишь в секундах
Когда у себя замерял, то одинарные как раз и были быстрее.
Если в милисекунды перевести, просто цикл сделай в 100 раз больше, вместо 1 млн - 100 млн. Получишь в секундах
Когда у себя замерял, то одинарные как раз и были быстрее.
Спустя 6 минут, 15 секунд (22.03.2012 - 08:34) Visman написал(а):
Быстрый самый последний.
Там 0.000001, а первом 0.906221
Там 0.000001, а первом 0.906221
Спустя 25 минут, 47 секунд (22.03.2012 - 09:00) twin написал(а):
Цитата (inpost @ 22.03.2012 - 05:18) |
Если говорим о реальных серверах, то важное замечание: .$text. БЫСТРЕЕ РАБОТАЕТ в 10 раз, чем . $text . П.С. это я о пробелах |
Никогда никому больше такой ерунды не говори.
Интерпретатор перед тем, как отдать код на компилляцию, очищает его от пробелов, переносов строк и комментариев. Никогда стиль кодирования на скорость исполнения не влиял.
Спустя 2 часа, 27 минут, 8 секунд (22.03.2012 - 11:27) glock18 написал(а):
Цитата (inpost @ 22.03.2012 - 05:22) |
А одинарные кавычки не парсятся регулярками на содержание внутри данных, вроде переменных, в отличии от двойных. |
такую ерунду тоже говорить не надо
Спустя 14 минут, 56 секунд (22.03.2012 - 11:42) Nikitian написал(а):
В этом "тесте" результаты таковы, т.к. отработал реально только первый цикл. Обнулять надо $i после каждого цикла. А по факту, глупости всё это. Пишите так, как удобнее воспринимать вам, а пользователям пофиг ваша экономия на спичках.
Спустя 15 минут, 47 секунд (22.03.2012 - 11:57) Игорь_Vasinsky написал(а):
о как.... а то..пробелы, пробелы...
Спустя 1 час, 40 минут, 35 секунд (22.03.2012 - 13:38) EvilDev написал(а):
Nikitian
Чет совсем уже у меня крыша едет %)
Вот результаты
array(4) { [0]=> float(7.532885) [1]=> float(7.832545) [2]=> float(7.318763) [3]=> float(7.24623) }
Чет совсем уже у меня крыша едет %)
Вот результаты
array(4) { [0]=> float(7.532885) [1]=> float(7.832545) [2]=> float(7.318763) [3]=> float(7.24623) }
Спустя 18 минут, 15 секунд (22.03.2012 - 13:56) twin написал(а):
Ерундой не занимайтесь. Никакой ощутимой разницы нет, в двойных кавычках писать переменные или конкатенацией. Она настолько ничтожна, что её запросто перекрывают такие вещи как загруженность процессора, температура и пр. Писать нужно так, чтобы было читабельно и удобно. Остальное все от лукавого. Кто не верит: вот, поклацайте.
Спустя 1 час, 4 минуты, 3 секунды (22.03.2012 - 15:00) Michael написал(а):
Цитата (EvilDev @ 22.03.2012 - 12:38) |
Nikitian Чет совсем уже у меня крыша едет %) |
Может из-за большой нагрузки по:
Цитата |
созданию с нуля сайтов любой сложности |
Спустя 3 часа, 23 минуты, 14 секунд (22.03.2012 - 18:23) vital написал(а):
На хабре было. Куда развернутее и интереснее, кому интересно погуглите.
Спустя 1 час, 25 минут, 35 секунд (22.03.2012 - 19:49) inpost написал(а):
twin
Я уже показывал. Очень жаль, что некоторые люди слушали и пропустили мимо ушей.
Тесты проводились на 10 серверах на разных хостингах. Запусти и сам проверь, из 10 - 8 показали, что пробелы кушают очень много ресурсов, и printf стал быстрее.
glock18
Ну а каким образом обрабатывается на уровне C такая запись: echo "text $var text"; ? Если не стандартной регуляркой на замену? Интересно узнать, если ты такой умный и знаешь...
Я уже показывал. Очень жаль, что некоторые люди слушали и пропустили мимо ушей.
Тесты проводились на 10 серверах на разных хостингах. Запусти и сам проверь, из 10 - 8 показали, что пробелы кушают очень много ресурсов, и printf стал быстрее.
glock18
Ну а каким образом обрабатывается на уровне C такая запись: echo "text $var text"; ? Если не стандартной регуляркой на замену? Интересно узнать, если ты такой умный и знаешь...
Спустя 3 минуты, 34 секунды (22.03.2012 - 19:53) Visman написал(а):
Вот какую я статейку давно читал (кое как нашел)
http://php.spb.ru/php/speed.html
http://php.spb.ru/php/speed.html
Спустя 13 минут, 41 секунда (22.03.2012 - 20:06) twin написал(а):
Цитата (inpost @ 22.03.2012 - 16:49) |
twin Я уже показывал. Очень жаль, что некоторые люди слушали и пропустили мимо ушей. Тесты проводились на 10 серверах на разных хостингах. Запусти и сам проверь, из 10 - 8 показали, что пробелы кушают очень много ресурсов, и printf стал быстрее. |
Хреновые значит тесты. Или сервера. Свои сервера я тестил - на всех картина одинаковая. Да и просто зная устройство PHP не нужно никаких тестов. Это все ерунда.
Покажи мне хоть один такой, где пробелы увеличивают время в 10 раз. Очень жаль, что ты собственные ошибки выдаешь за чистую монету. Осторожнее надо, люди же верят.
ГЗВ Ссылку ты наверное просмотрел.
Спустя 1 минута, 34 секунды (22.03.2012 - 20:08) Игорь_Vasinsky написал(а):
Цитата |
Осторожнее надо, люди же верят. |
Спустя 4 минуты, 13 секунд (22.03.2012 - 20:12) redreem написал(а):
вообще универсальное правило можно просто сформулировать:
"если парсер транслятора позволяет разные варианты написания, нужно использовать только ту, которая однозначно и принудительно сообщает ему о типе лексемы"
остальное все холивар.
"если парсер транслятора позволяет разные варианты написания, нужно использовать только ту, которая однозначно и принудительно сообщает ему о типе лексемы"
остальное все холивар.
Спустя 9 минут, 56 секунд (22.03.2012 - 20:22) inpost написал(а):
twin
Я код проверил, нет там ошибок.
0.282049179077 - echo (with space)
0.115871429443 - echo2 (without space)
0.113964080811 - echo3 (without space)
0.143051147461 - echo4 (with mass space + \t)
0.155925750732 - printf
0.109910964966 - print
0.110864639282 - print (without space)
0.082851720112 - <?php echo $var; ?>
Я код проверил, нет там ошибок.
Спустя 48 секунд (22.03.2012 - 20:23) glock18 написал(а):
Цитата (inpost @ 22.03.2012 - 16:49) |
twin Я уже показывал. Очень жаль, что некоторые люди слушали и пропустили мимо ушей. Тесты проводились на 10 серверах на разных хостингах. Запусти и сам проверь, из 10 - 8 показали, что пробелы кушают очень много ресурсов, и printf стал быстрее. glock18 Ну а каким образом обрабатывается на уровне C такая запись: echo "text $var text"; ? Если не стандартной регуляркой на замену? Интересно узнать, если ты такой умный и знаешь... |
ой, ну не мори меня хохотом, пожалуйста Умру ведь со смеху
Смешно видеть подобные рассуждения от человека, судя по всему C в глаза не видевшего.
Все элементарно, регулярки (это вообще механизм очень тяжелый для того, чтобы использовать его в таких программах - использовались бы регулярки в MacOS и вместо шустрой системы у тебя было бы постоянно тормозящее убожество) там не используются 100% )) Это говорю тебе я, человек написавший на C свой компилятор (по своим языковым правилам, похожий на C) в ассемблер, и в свое время эту тему хорошо изучивший.
Если бы я к тебе относился чуточку иначе, чем отношусь, то, вероятно, даже объяснил бы вкратце. А если бы хорошо относился, то даже теорию компиляторов в памяти восстановить попробовал бы, и рассказать.
PS: про пробелы это супер жги есчо, товарыщь. Не, вообще говоря, то что без пробелов работать будет быстрее - правда. Но слышать это от человека, использующего регулярки для парсинга строки...
Спустя 3 минуты, 30 секунд (22.03.2012 - 20:26) inpost написал(а):
twin
К тому же ты явно не учел тот факт, что интерпретатор кеширует вывод переменной, когда повторный echo одной и той же переменной уже будет быстрее работать первого echo её же. Что есть немаловажный факт для тестирований.
glock18
Типичный ТРО-ЛО-ЛО. Ответа нет, зато есть фразы:
- Я крутой, а ты гомно.
- Я тебя не уважаю.
- Хотел бы - написал бы, но я не хочу.
- + подонкафский.
Конечно, сразу видно, что ты "шаришь" в данном вопросе, ага
К тому же ты явно не учел тот факт, что интерпретатор кеширует вывод переменной, когда повторный echo одной и той же переменной уже будет быстрее работать первого echo её же. Что есть немаловажный факт для тестирований.
glock18
Типичный ТРО-ЛО-ЛО. Ответа нет, зато есть фразы:
- Я крутой, а ты гомно.
- Я тебя не уважаю.
- Хотел бы - написал бы, но я не хочу.
- + подонкафский.
Конечно, сразу видно, что ты "шаришь" в данном вопросе, ага
Спустя 39 секунд (22.03.2012 - 20:27) glock18 написал(а):
Да, точно, чтобы люди не поняли меня неправильно. Один пробел сэкономит, ну скажем, 3-4 такта процессорного времени. если не ошибаюсь, то деление занимает то ли 64, то ли 128 тактов (могу ошибаться, не помню уже точно). inpost, ты еще не оптимизировал все возможные операции деления/умножения на побитовые сдвиги? Вперед, у тебя еще целый фронт работ по оптимизации, можешь начинать это делать сразу после того, как пробелы почистишь.
Спустя 4 минуты, 23 секунды (22.03.2012 - 20:31) inpost написал(а):
Сначала на мою фразу, что пробел будет медленнее - начинают какашками кидаться, а тут уже подтверждение, что это экономит 3-4 такта... О БОЖЕ, с кем я общаюсь, при этом 2 варианта:
- Ты дурак, ты делаешь не правильно
- Ты дурак, потому что ты говоришь правильно, но только дибилы на это обращают внимание.
- Ты дурак, ты делаешь не правильно
- Ты дурак, потому что ты говоришь правильно, но только дибилы на это обращают внимание.
Спустя 3 минуты, 26 секунд (22.03.2012 - 20:35) glock18 написал(а):
Цитата (inpost @ 22.03.2012 - 17:31) |
Сначала на мою фразу, что пробел будет медленнее - начинают какашками кидаться, а тут уже подтверждение, что это экономит 3-4 такта... О БОЖЕ, с кем я общаюсь, при этом 2 варианта: - Ты дурак, ты делаешь не правильно - Ты дурак, потому что ты говоришь правильно, но только дибилы на это обращают внимание. |
ты забыл еще третий вариант, который все бы тебе объяснил ))) Судя по всему, тебе еще нужно погуглить сколько это "3-4 такта"
Ну да ладно, я как бы просто поржать сюда зашел. Поржал, теперь отдохну пойду, жалко правда, что кто-то может твои слова всерьез по незнанию воспринять.
Спустя 56 секунд (22.03.2012 - 20:36) twin написал(а):
Цитата (inpost @ 22.03.2012 - 17:26) |
twin К тому же ты явно не учел тот факт, что интерпретатор кеширует вывод переменной, когда повторный echo одной и той же переменной уже будет быстрее работать первого echo её же. Что есть немаловажный факт для тестирований. |
Я не понял, причем тут echo? Речь шла о пробелах.
Цитата |
.$text. БЫСТРЕЕ РАБОТАЕТ в 10 раз, чем . $text . |
Коню понятно, что с пробелами будет медленнее. Даже просто потому, что нужно больше памяти. Но это чистая теория, так как скрипт никогда не работает одинаково. И вся эта экономия на несколько раз съедается разбросом. Тестами ты её ну никак, эту разницу, не выловишь. Только теоретически. Ну а заявлять о разнице в 10(!) раз вообще как минимум опрометчиво.
Спустя 3 минуты, 41 секунда (22.03.2012 - 20:39) inpost написал(а):
Обычно темы люди создают с надеждой получить советы.
Но некоторые заходят "просто поржать" и потроллить.
Но некоторые заходят "просто поржать" и потроллить.
Спустя 6 минут, 26 секунд (22.03.2012 - 20:46) inpost написал(а):
twin
Может в 10 раз загнул, разница сейчас где-то на 10-30%, что является незначительным.
Понятное дело, что над такими мелочами нет смысла даже париться, даже тот же printf никогда не завалит систему, потому что его физически не хватит этого сделать, хотя он и самый медленный из представленных.
Ранее проводил тесты, так вот разница в 2-3 раз достигала тем, что echo с пробелами стоял первым, в связи с этим первый раз кушал переменные, а далее из буфера, так вот первый и был медленным на столько.
Пробелы проверить можно либо на присвоении, либо на выводе, либо на других операциях. echo был выбран как один из кандидатов для проведения тестов.
Может в 10 раз загнул, разница сейчас где-то на 10-30%, что является незначительным.
Понятное дело, что над такими мелочами нет смысла даже париться, даже тот же printf никогда не завалит систему, потому что его физически не хватит этого сделать, хотя он и самый медленный из представленных.
Ранее проводил тесты, так вот разница в 2-3 раз достигала тем, что echo с пробелами стоял первым, в связи с этим первый раз кушал переменные, а далее из буфера, так вот первый и был медленным на столько.
Пробелы проверить можно либо на присвоении, либо на выводе, либо на других операциях. echo был выбран как один из кандидатов для проведения тестов.
Спустя 4 минуты, 50 секунд (22.03.2012 - 20:51) twin написал(а):
Нет там никаких 10-30%. Нет и быть не может. Повторяю еще раз, это разброс времени исполнения скрипта. Тебе просто не повезло в тестах, либо ты провел их недостаточно много.
Пробелы, переносы строк (кстати, я видел ты отругал кого-то за них в конкурсе) и комментарии никогда не создадут видимой разницы исполнения скрипта. Ну если конечно не напихать 10 метров одних пробелов.
Пробелы, переносы строк (кстати, я видел ты отругал кого-то за них в конкурсе) и комментарии никогда не создадут видимой разницы исполнения скрипта. Ну если конечно не напихать 10 метров одних пробелов.
Спустя 39 минут, 10 секунд (22.03.2012 - 21:30) zeromind написал(а):
вы уже зажрались с тестами))
если и скорость и повлияет из-за пробелов то только на чтение файла, т.к. стал больше, на производительность думаю это не скажится)
смысл вообще тестировать такую ерунду? вы на этом максимум выйграете тысячные доли секунды же..
если и скорость и повлияет из-за пробелов то только на чтение файла, т.к. стал больше, на производительность думаю это не скажится)
смысл вообще тестировать такую ерунду? вы на этом максимум выйграете тысячные доли секунды же..
Спустя 8 минут, 34 секунды (22.03.2012 - 21:38) Игорь_Vasinsky написал(а):
how is winner ???
Спустя 1 минута, 18 секунд (22.03.2012 - 21:40) twin написал(а):
Это вопрос принципиальный. Дело в том, что если бы действительно разница была бы ощутимой, то тогда стоило бы подумать насчет изменения или выбора стиля кодирования. А так люди послушают и начнут лепить кашу-малашу, отсылая к авторитетному источнику. Мол экономия.
Кстати, я вспомнил еще про одну штуку. Про header и путь с протоколом. Я в той теме тоже поторопился согласиться. На самом деле я был прав, просто нужно было до конца разобраться. Нужно найти тему и исправить. А то люди читают и верят...
Кстати, я вспомнил еще про одну штуку. Про header и путь с протоколом. Я в той теме тоже поторопился согласиться. На самом деле я был прав, просто нужно было до конца разобраться. Нужно найти тему и исправить. А то люди читают и верят...
Спустя 1 минута, 25 секунд (22.03.2012 - 21:41) Игорь_Vasinsky написал(а):
ну тогда спрачте топик.
говорить о пробелах, когда тут рядом запросами в цикле БД заваливают... это смешно.
говорить о пробелах, когда тут рядом запросами в цикле БД заваливают... это смешно.
Спустя 43 секунды (22.03.2012 - 21:42) sharki написал(а):
Дайте мне код теста, на работе с 32мя ядрами проверю)
Ps. По мне, так тема маразматична до ужаса... Что если бы об этом говорили на форуме java...
Ps. По мне, так тема маразматична до ужаса... Что если бы об этом говорили на форуме java...
Спустя 11 часов, 25 минут, 14 секунд (23.03.2012 - 09:07) Michael написал(а):
инпост как обычно нацепил рыжий парик, шарик-нос, зрители расселись, он вышел на сцену и ... начал делиться своими думами о программировании.
Рыжий, рыжий, рыжий, а ну ка рассмеши
То в 10 раз медленнее, то уже в 1.3, как будто это сравнимые вещи...
Рыжий, рыжий, рыжий, а ну ка рассмеши
То в 10 раз медленнее, то уже в 1.3, как будто это сравнимые вещи...
_____________
HTML5, CSS3, jQuery, Node.js, PHP, Yii, Joomla, MySQL, MongoDb, GIMP