
Dmitry
06.10.2017
21:28:46
ну в том смысле что опкоды будут знать уже про типы данных а не ожидать что угодно

Alex
06.10.2017
21:29:18
В воскресенье пойду пускать это в продакшн.

Dmitry
06.10.2017
21:29:32
самое лучшее время для прода))

Alex
06.10.2017
21:29:36
На пару с админом.

Google

Rinat
06.10.2017
21:29:59

Alex
06.10.2017
21:30:14
Так в другое время не дают это сделать. Ибо работают
Админ там ещё что-то переносить будет. С коллегой.
Воскресенье, пивзавод, обновление прода.....
Точнее замена виртуалки
Солью образ со своего компа. Звоню свежий дамп мускула. Вырублю старую и сменю ip у новой на старый.
Думаю часа за 4 управимся

Rg
06.10.2017
21:36:26
Чуваки, opencv на лица никто не учил?

Mikhail
06.10.2017
21:36:45
в 7.1 fatal ы на warning бывшие, мы пока на 7.0 из за этого, слишком пока много править

Dmitriy
06.10.2017
21:39:13

Dmitry
06.10.2017
21:39:38

Google

Dmitriy
06.10.2017
21:40:18
видимо не очень

Sergey
06.10.2017
21:42:03
и это то что сходу вспомнил

Dmitry
06.10.2017
21:42:29
https://stackoverflow.com/questions/32940170/are-scalar-and-strict-types-in-php7-a-performance-enhancing-feature
сама по себе типизация не ускоряет
Literally yesterday, PHP 7.1 got something really similar: There are now type specific handlers for some high frequency opcodes like ZEND_ADD. Opcache is able to infer the type of some variables, it's even able to infer the types of variables within an array in some cases and change opcodes generated to use the normal ZEND_ADD, to use a type specific handler:
тоесть при генерации опкеша будет сгенерен оптимальный вариант инструкции с учетом типа данных, правильно?

Sergey
06.10.2017
21:46:27
но информация о типах позволяет задавать более специализированные инструкции

Dmitry
06.10.2017
21:47:16
только первый запуск, пока анализируется сам скрипт и собирается опкеш
jit-компиляция точно также работает

Sergey
06.10.2017
21:47:38
jit - это всякие инлайн кэши, статистический анализ типов и т.д. то есть видоизменение потока команд в рантайме
ну и вместо статичной виртуальной машины ты получаешь кодогенерацию в том же рантайме
(статичной - значит поток машинных инструкций одинаковый, меняется только что вызываешь)

Dmitry
06.10.2017
21:49:53
какая разница если ты на выходе другой сэт опкодов получишь?
ммм?
есть срипт, интерпретатор не знает что там внутри, при первом выполнении он генерит набор опкодов, смотрит на типы данных чтобы подобрать наиболее оптимальные и прочее...
при условии что кеш не протух и скрипт не менялся повторный анализ скрипта выполняться не будет
или это как-то иначе работает?))

Sergey
06.10.2017
21:50:24
то есть идея какая, парсер тебе генерит поток опкодов, а opcache его оптимизирует и сохраняет

Google

Sergey
06.10.2017
21:50:58
интерпритатор - это уже штука которая тупо обрабатывает поток опкодов
то есть opcache влияет на скорость работы не только потому что устраняет довольно жирный процесс разбора кода повторый

Dmitry
06.10.2017
21:51:38
ну мы сейчас не углубляемся настолько, чтобы поэтапно рассматривать. есть исполняемый файл которому скармливаем файл и на выходе получаем опкеш

Sergey
06.10.2017
21:52:25
ну и нюанс - в контексте CLI приложений профит от opcache без jit - сомнительный. Хотя специализация опкодов может чего и ускорит

Dmitry
06.10.2017
21:53:32

Sergey
06.10.2017
21:54:13
а чем cli так сильно отличается?
тем что нет разделяемой памяти, тем что сам факт устранения фазы парсинга не особо там чего экономит... ну если у тебя скрипт только и делает что строки канкатенирует - тут профит да будет))
а так - процесс умер - кэша нет
есть дамп кэша в файл - если тебе надо очень часто рестартовать cli приложение
тут профит будет
но это такой же профит насколько сомнительно решение делать подобные короткоживущие процессы

Dmitry
06.10.2017
21:57:49
ну а всякая хрень которая по крону происходит, например? там как раз на уровне перемешивания всяких массивов операции

Sergey
06.10.2017
22:01:37
оно будет критично когда у тебя баш скрипт в бесконечном лупе например стартует php скрипты на секундочку что-то помашнить со строками например
вот тут профит от opcache небольшой да будет)
https://github.com/zendtech/ZendOptimizerPlus/blob/master/Optimizer/optimize_temp_vars_5.c
вот например интересный кусок

Dmitry
06.10.2017
22:04:21
вот буквально недавно читал по поводу всего этого дела у одной компании (они переводились тоже на 7.х и заодно типизацию подрубили) вроде авито, не помню.
там про все это упоминается

Sergey
06.10.2017
22:04:52
это экономия на спичках

Google

Sergey
06.10.2017
22:05:16
оно реально нужно про это думать когда у тебя эта спичка - лишних 10 серваков
и то скорее всего лучше проверить может где еще индекс в базу поставить

Dmitry
06.10.2017
22:05:43

Sergey
06.10.2017
22:05:55

Dmitry
06.10.2017
22:06:54
на том и порешили))
а гитхабу не помешало бы сворачивание блоков кода и переход на функции

Sergey
06.10.2017
22:07:22
/* pass 2:
* - convert non-numeric constants to numeric constants in numeric operators
* - optimize constant conditional JMPs
* - optimize static BRKs and CONTs
*/

Dmitry
06.10.2017
22:07:24
в примере только 200 строк, и это хорошо, но это далеко не всегда так))

Sergey
06.10.2017
22:07:28
вот хорошая оптимизация еще

Dmitry
06.10.2017
22:08:02
CONT это новая итерация?

Sergey
06.10.2017
22:08:37
https://github.com/php/php-src/tree/master/ext/opcache/Optimizer
старый код смотрю
вот тут вся смакота

Dmitry
06.10.2017
22:10:08
не, си это такая штука, которую вот так просто за чашечкой кофе на гитхабе не полистаешь. тут нужна навигация по коду и прочие плюшки))
хотя может отвык уже хз

Sergey
06.10.2017
22:11:33
ну в целом да)
блин надо поразбираться что они там намутили
а то за клепанием контроллеров совсем мозг атрофируется

Dmitry
06.10.2017
22:14:35
а nginx-init никто не пробовал? в контексте php разумеется

Sergey
06.10.2017
22:14:59
unit?

Google

Sergey
06.10.2017
22:15:11
да как-то лениво пока никто не сделает норм образ под докер
https://hub.docker.com/r/airycanon/nginx-unit-php/
а не, сделали
но в продакшен пока никак...

Rinat
06.10.2017
22:24:47
что-то очень много камин сунов
TLS support (coming soon)
TCP, HTTP, HTTPS, HTTP/2 routing and proxying (coming soon)

Igor
06.10.2017
22:30:14
Объясните на пальцах плз, зачем нужен нгинх юнит если нгинх и так стоит как реверс прокси везде..?


Sergey
06.10.2017
22:33:01
что бы у тебя один процесс и http обрабатывал и php запускал
типа apache
только быстрый
application сервер короч
например вот мой кейс. Есть у меня приложуха развернутая в класстере aws. Перед ней стоит балансировщик. На нодах висят php-fpm-ы который умеют обрабатывать fastcgi запросы по tcp. Так вот, балансировщик в этом случае максимум может проверить слушает кто порт или нет. Этого сильно недостаточно для налаживания нормальных хэлс чеков. Потому мне приходится на каждой ноде с php-fpm держать еще nginx. Что бы можно было с каждой нодой в отдельности общаться и опрашивать статус/собирать метрики и на основе этого делать нормальный автоматизированный пайплайн деплоя с откатом изменений если что-то идет не так
(про откат изменений это я соврал, мы на континиул деливери перейдем пожалуй когда nginx unit будет уже обыденностью)
ну и просто если пересчитать количество пакетов которое удваивается на каждую такую "проксю" - можно слегка охереть
если бы у нас еще небыло необходимости с nginx-а статику сервить, то можно было бы сверху route 53 повесить и жить не тужить


Igor
06.10.2017
22:42:55
Приблизительно ясно

dypa
07.10.2017
15:35:57

Sergey
07.10.2017
20:22:20

Ivan
07.10.2017
22:06:02
Добрый ночи, хотел бы обратиться ко всем и спросить... Купил очень клевую мышку DPI 4800, + удобная, имеются пару кнопок 5 большенство из по не видят пару кнопок и воспринимают их как левый шелчек.... Мне хотелось бы подвязать кнопку создать новую папку, создать файл, записать в блокнот выделенное, открыть сайт по ссылки, переход назад в браузере. Может ли кто подсказать имется ли такая программа которая сможет сделать перечисленное? + автоматизация мышки с со списком действий переход координат + действие как запись что делал мышкой клавой в шаблон, запись с монитора, и есть ли прога которая может типо над этаж на клаве сделать, то есть зажал кнопки, клавиатура поменяла раскладку и клавиши выполняют комманду или запускают скрипт, или прогу...