Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

php perfect


ArtemPitov

Recommended Posts

Интересная статистика

dasdasd.png

Оригинал  https://www.phpclasses.org/blog/post/493-php-performance-evolution.html

  • +1 2
Надіслати
Поділитися на інших сайтах

Надіслати
Поділитися на інших сайтах

Ну то, что 7 версия в 2-3 раза быстрее 5.6 уже давно не новость. 
На хабре есть сравнение производительности разных версий php (есть и 7.2) на разных движках, это более интересно, чем какой-то bench.php, так как там реальные движки
https://habr.com/company/mailru/blog/350686/

А вот последняя колонка очень интересна, о том, что php 8 выйдет с поддержкой JIT компилятора я уже в другой теме писал, а тут даже тесты есть, получается с JIT php будет быстрее в 2 раза за 7.1! Это круто. Вот только выйдет php 8 года через 3.. 

Надіслати
Поділитися на інших сайтах

1 минуту назад, sv2109 сказал:

А вот последняя колонка очень интересна, о том, что php 8 выйдет с поддержкой JIT компилятора я уже в другой теме писал, а тут даже тесты есть, получается с JIT php будет быстрее в 2 раза за 7.1! Это круто. Вот только выйдет php 8 года через 3.. 

новости 8ке уже давно есть, вроде даже на хабре была 

JIT скорее, да и не скорее, в зависимости от того как "приготовлен", это так сказать камень в огород пайтону  

 

Википедия 

Цитата

Большинство реализаций JIT имеют последовательную структуру: сначала приложение компилируется в байт-код виртуальной машины среды исполнения (AOT-компиляция), а потом JIT компилирует байт-код непосредственно в машинный код. В итоге при запуске приложения тратится лишнее время, что впоследствии компенсируется более быстрой его работой. 

 

Надіслати
Поділитися на інших сайтах

И вот тут кстати подробное описание этого теста. 
https://habr.com/company/mailru/blog/326696/
 

Надіслати
Поділитися на інших сайтах

Цитата

с включённым OPCache

"Неочем"

Интересны тесты с выключенным opcache, учитывая как коряво он работает с opencart

Надіслати
Поділитися на інших сайтах

Только что, freelancer сказал:

жалко что все эти перфомансы никак не повлияют на opencart (

Даниэль еще не сам не определился, сегодня делает 7.2, завтра 5.6. 

Хотя 3йка сейчас должна работать на php7 без "танцев с бубнами" 

Надіслати
Поділитися на інших сайтах

18 минут назад, markimax сказал:

"Неочем"

Интересны тесты с выключенным opcache, учитывая как коряво он работает с opencart

Согласен..

А ну-ка назовите мне что самое тормознутое в опенкарте?
БИНГО! Запросы в базу

И чем здесь поможет 777версия не понятно.
Ну, выполнится цикл с 20 товарами за 0,005 сек, вместо привычных 0,010
И что?

Уйти от безумных передач массивов.. и это уже ускорит..

 

Надіслати
Поділитися на інших сайтах

22 минуты назад, markimax сказал:

"Неочем"

Интересны тесты с выключенным opcache, учитывая как коряво он работает с opencart

Вот про opcache + opencart соглашусь. Отключил его. Коряво до горя. 

Надіслати
Поділитися на інших сайтах


8 минут назад, niger сказал:

Вот про opcache + opencart соглашусь. Отключил его. Коряво до горя

А в чем именно корявость? Минусов слышал значительно меньше, чем плюсов

Надіслати
Поділитися на інших сайтах

Чтобы не писать пустые посты решить проверить на реальных цифрах. 
Проверял на OpenCart 2.3.0.2 на версиях php 5.6 и 7.1 Просто эти 2 версии установлены на моем рабочем ноутбуке, то есть железо то же, все то же, просто переключался между версиями php, перезапускал апач и делал вторую проверку. 
И так
5.6 

Спойлер

PHP Version 5.6.36-1+ubuntu16.04.1+deb.sury.org+1


This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient).....done


Server Software:        Apache/2.4.18
Server Hostname:        localhost
Server Port:            80

Document Path:          /opencart/2302/
Document Length:        26292 bytes

Concurrency Level:      1
Time taken for tests:   7.605 seconds
Complete requests:      50
Failed requests:        0
Total transferred:      1347550 bytes
HTML transferred:       1314600 bytes
Requests per second:    6.57 [#/sec] (mean)
Time per request:       152.100 [ms] (mean)
Time per request:       152.100 [ms] (mean, across all concurrent requests)
Transfer rate:          173.04 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   120  152  26.4    148     215
Waiting:      119  151  26.3    148     214
Total:        120  152  26.4    148     215

Percentage of the requests served within a certain time (ms)
  50%    148
  66%    161
  75%    170
  80%    177
  90%    194
  95%    204
  98%    215
  99%    215
  100%    215 (longest request)


7.1

Спойлер

PHP Version 7.1.10-1+ubuntu16.04.1+deb.sury.org+1

 

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient).....done


Server Software:        Apache/2.4.18
Server Hostname:        localhost
Server Port:            80

Document Path:          /opencart/2302/
Document Length:        26292 bytes

Concurrency Level:      1
Time taken for tests:   5.410 seconds
Complete requests:      50
Failed requests:        0
Total transferred:      1346200 bytes
HTML transferred:       1314600 bytes
Requests per second:    9.24 [#/sec] (mean)
Time per request:       108.205 [ms] (mean)
Time per request:       108.205 [ms] (mean, across all concurrent requests)
Transfer rate:          242.99 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    82  108  22.7     97     165
Waiting:       82  108  22.7     96     164
Total:         82  108  22.7     97     165

Percentage of the requests served within a certain time (ms)
  50%     97
  66%    115
  75%    127
  80%    133
  90%    144
  95%    151
  98%    165
  99%    165
  100%    165 (longest request)

 

и коротко
 

5.6 
Complete requests:      50
делает за
Time taken for tests:   7.605 seconds
запросов в секунду
Requests per second:    6.57 [#/sec] (mean)
среднее время одного запроса
Time per request:       152.100 [ms] (mean)

 

7.1
Complete requests:      50
делает за
Time taken for tests:   5.410 seconds
запросов в секунду
Requests per second:    9.24 [#/sec] (mean)
среднее время одного запроса
Time per request:       108.205 [ms] (mean)

 

То есть на 7.1 опенкарт 2.3 работает больше чем на 40% (почти в полтора раза) быстрее, чем на 5.6 

Вот вам реальные цифры, а не домысли из потолка о том, что для опенкарт версия php вообще никак не повлияет на скорость, ведь там оказывается база.. и сложного кода нету.. и вообще все работает коряво и не так как у всех.. :) 

Надіслати
Поділитися на інших сайтах

8 минут назад, sv2109 сказал:

Чтобы не писать пустые пусты решить проверить на реальных цифрах. 

 

 

 



Вот вам реальные цифры, а не домысли из потолка о том, что для опенкарт версия php вообще никак не повлияет на скорость, ведь там оказывается база.. и сложного кода нету.. и вообще все работает коряво и не так как у всех..  

 

А вы внимательно читали о чем там шла речь?
Речь шла не про версию php
И так понятно и видно по тестам что 7 быстрее 5 раза в полтора
Речь шла про opcache, его кривость работы и соответственно "дутые" тесты
Про 7 и так все знаем. Я давно JC запускал с профайлером, реальные результаты такие же - 7 быстрее в полтора, два раза. Даже с выключенным opcache
Где прирост? На операциях json_decode большая (коих в opencart валом (config, cache)), на работе с большими массивами и т п 

Надіслати
Поділитися на інших сайтах

42 минуты назад, markimax сказал:

На операциях json_decode большая (коих в opencart валом (config, cache)), на работе с большими массивами и т п 

Вот именно, но прирост именно на тестах, а на реальном проекте это прирост незначителен

 

Надіслати
Поділитися на інших сайтах

1 час назад, markimax сказал:

Речь шла про opcache, его кривость работы и соответственно "дутые" тесты

 

1. Какие конкретные проблемы с опкешем? 
Я за уже больше 6 лет что работают с опенкартос ни разу не сталкивался с какими-то проблемами опкеша. Нет, я не спорю, может они и есть на каких-то конфигурациях серверов, то это явно скорее или исключения или кривость рук, тех, кто все настраивал. Да и почему это десятки других движков, которые в разы сложнее опенкарта с опкешем работают, а опенкарт вот вдруг вообще не может работать?
 

2. Специально проверил с выключенным опкешем, тот же сайт, то же железо
5.6 
запросов
Complete requests:      50
делает за
Time taken for tests:   8.567 seconds
запросов в секунду
Requests per second:    5.84 [#/sec] (mean)
среднее время одного запроса
Time per request:       171.346 [ms] (mean)

7.1
запросов
Complete requests:      50
делает за
Time taken for tests:   6.771 seconds
запросов в секунду
Requests per second:    7.38 [#/sec] (mean)
среднее время одного запроса
Time per request:       135.429 [ms] (mean) 

 

То есть даже с выключенным опкешем прирост скорости все равно около 30% между 5.6 и 7.1 

 

Надіслати
Поділитися на інших сайтах

16 минут назад, sv2109 сказал:

 

1. Какие конкретные проблемы с опкешем? 
Я за уже больше 6 лет что работают с опенкартос ни разу не сталкивался с какими-то проблемами опкеша. Нет, я не спорю, может они и есть на каких-то конфигурациях серверов, то это явно скорее или исключения или кривость рук, тех, кто все настраивал. Да и почему это десятки других движков, которые в разы сложнее опенкарта с опкешем работают, а опенкарт вот вдруг вообще не может работать?

 

 

У других движков такие же проблемы с opcache (была статья на хабре)
opcache "условно - стабильное" расширение. И для магазинов рекомендуют выключать, если не хотите потерять заказы, или корзина пользователя "вдруг" от другого пользователя  и т п
Да зависит от настроек сервера. Но как пользователю обьяснить что хостер криворукий и не может настроить opcache
Я часто замечаю проблемы с opcache. К примеру иногда настройки сохранил, заходишь старые, а через время "новые". С корзиной иногда (замечу "иногда". понятное дело что кешируется байт код и что там в кеше "не понятно" в данный момент) проблемы, заказы пропадают и т п
Выключаешь opcache - всё отлично работает

Надіслати
Поділитися на інших сайтах

7 минут назад, sv2109 сказал:

прирост скорости все равно около 30% между 5.6 и 7.1 

Блин!!!!
@sv2109 и что?
 

 

7 минут назад, sv2109 сказал:

Специально проверил

Чем и что?

Я как-то делал тесты
serialize и json
с предварительным зипом и без
запись и чтение
На разных серверах, в разных окружениях
Никто не победил.
У кого-то быстрое чтение, у кого-то быстрая запись, кто-то быстро работал на малых данных, а кто-то на больших
Какая частота  записи кеша, и чтения?
Другая сторона - целостность данных
нарушение целостности в сериализованных данных приведет к крешу, в json - нет
Так что лучше использовать?

 

Надіслати
Поділитися на інших сайтах

отличный пример статистики сферического опенкарта в вакууме

но вывод безусловно вне всяких похвал!

 

1 час назад, sv2109 сказал:

То есть на 7.1 опенкарт 2.3 работает больше чем на 40% (почти в полтора раза) быстрее, чем на 5.6 

 

смотрите опенкарт на php 7.1 на 40% быстрее! 

т.е. если у моей текущей заказчицы двиг открывается 8с, то на новой версии будет 4,8c. круто!

 

или нет?

в тестах 152.100 [ms] (mean) против 108.205 [ms] разница 40 ms

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

2 минуты назад, nikifalex сказал:

по-моему оно же входит в пакет

Нет. Это обычное серверное расширение
Просто тот кто включает его, должен убедиться что оно стабильно работает.
Но вот стабильностью с opcache+opencart и не пахнет
Я выше перечислял возможные проблемы и это только малая их часть. Особого прироста скорости opcache не дает (5-10% это "слезы в море"). Если у васTTFB 2 секунды то если при включении opcache будет 1.8 секунды понятное дело роли это не сыграет никакой. Поэтому резонный вопрос, зачем его включать, если можно запросто нарваться на не стабильную работу и глюки.

Надіслати
Поділитися на інших сайтах

1 час назад, markimax сказал:

На операциях json_decode большая (коих в opencart валом (config, cache)), на работе с большими массивами и т п 

Опять специально замерил выполнение всех вызовов json_decode на opencart 2.3 (на самом деле там их не так и много, штук 5, не считая разные модули оплаты и других модулей, которые почти не используются типа openbay) и что у меня получилось? На весь магазин все вызовы json_decode выполняются аж.. 0.00047492980957031 секунды.. или пол миллисекунды..  вот и вся чудовищная нагрузка json_decode на опенкарт.. наверное вместо нее нужно использовать какую-то другую ф-цию, которая будет нагружать сервер меньше, может 0.4 мс вместо 0.5 :)

Надіслати
Поділитися на інших сайтах

5 минут назад, sv2109 сказал:

Опять специально замерил выполнение всех вызовов json_decode на opencart 2.3 (на самом деле там их не так и много, штук 5

 

"штук 5" :ph34r:
А штук "100500" не хотите в реальных магазинах
Вся работа кеша opencart построена на json_decode json_encode
 

Спойлер

	public function get($key) {
		$files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

		if ($files) {
			$handle = fopen($files[0], 'r');

			flock($handle, LOCK_SH);

			$data = fread($handle, filesize($files[0]));

			flock($handle, LOCK_UN);

			fclose($handle);

			return json_decode($data, true);
		}

		return false;
	}

	public function set($key, $value) {
		$this->delete($key);

		$file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire);

		$handle = fopen($file, 'w');

		flock($handle, LOCK_EX);

		fwrite($handle, json_encode($value));

		fflush($handle);

		flock($handle, LOCK_UN);

		fclose($handle);
	}

 

 

НА большом количестве товаров json_decode тормозит магазин еще и как
Взять хотя бы кеширование seo_pro
Для того чтобы достать из кеша большой массив данных может тратиться секунды на его декодирование!

Надіслати
Поділитися на інших сайтах

4 минуты назад, markimax сказал:

Особого прироста скорости opcache не дает (5-10% это "слезы в море")

я же выше давал цифры по версиям php,
на 5.6 прирост скорости с опкешем +16%, на 7.1 +20% 
то есть далеко не 5%

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.