Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

php perfect


Recommended Posts

opcache.optimization_level = -1

это дефолт?

Link to post
Share on other sites

Ну то, что 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.. 

Link to post
Share on other sites
1 минуту назад, sv2109 сказал:

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

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

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

 

Википедия 

Цитата

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

 

Link to post
Share on other sites
Цитата

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

"Неочем"

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

Link to post
Share on other sites
Только что, freelancer сказал:

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

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

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

Link to post
Share on other sites
18 минут назад, markimax сказал:

"Неочем"

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

Согласен..

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

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

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

 

Link to post
Share on other sites
22 минуты назад, markimax сказал:

"Неочем"

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

Чтобы не писать пустые посты решить проверить на реальных цифрах. 
Проверял на 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 вообще никак не повлияет на скорость, ведь там оказывается база.. и сложного кода нету.. и вообще все работает коряво и не так как у всех.. :) 

Link to post
Share on other sites
8 минут назад, sv2109 сказал:

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

 

 

 



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

 

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

Link to post
Share on other sites
42 минуты назад, markimax сказал:

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

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

 

Link to post
Share on other sites
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 

 

Link to post
Share on other sites
16 минут назад, sv2109 сказал:

 

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

 

 

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

Link to post
Share on other sites
7 минут назад, sv2109 сказал:

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

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

 

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

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

Чем и что?

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

 

Link to post
Share on other sites
10 минут назад, markimax сказал:

opcache "условно - стабильное" расширение. И для магазинов рекомендуют выключать, если не хотите потерять заказы, или корзина пользователя "вдруг" от другого пользователя  и т п

по-моему оно же входит в пакет от yoda который за 9999руб

Link to post
Share on other sites

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

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

 

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
Link to post
Share on other sites
2 минуты назад, nikifalex сказал:

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

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

Link to post
Share on other sites
1 час назад, markimax сказал:

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

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

Link to post
Share on other sites
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
Для того чтобы достать из кеша большой массив данных может тратиться секунды на его декодирование!

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.