SlideShare une entreprise Scribd logo
1  sur  23
Пора ли отправлять С на свалку истории?  Пишем демонов на PHP с использованием расширения libevent
Кто мы такие? ,[object Object],[object Object],[object Object]
Обычная архитектура (mem)cached
Наша архитектура — включаем демоны
Демонизация. Что есть такое  libevent? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Пишем демона
Пишем демона, работающего с сокетом ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Пишем демона — подключаем libevent ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Метод обработки ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Метод чтения ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Превращаем демона в ... или не документированные возможности
Таймеры (thnx 440hz) ,[object Object],[object Object],[object Object],[object Object]
Таймеры - решение ,[object Object],[object Object],event_set( $rTimers , $rTtmpFile , 0 , 'onTimer' , ) ;
Демонстрация http://cyberdot.ru/src/socket.phps
Подводные камни ,[object Object],[object Object],[object Object],[object Object],[object Object]
Даем нагрузку
Тестирование ботами ,[object Object],[object Object],[object Object]
Результаты ,[object Object],[object Object],[object Object],[object Object]
Результаты ,[object Object],[object Object],[object Object],[object Object],[object Object]
Советы ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Выводы ,[object Object],[object Object]
Выводы (серьезно) ,[object Object],[object Object],[object Object]
Вопросы?

Contenu connexe

Tendances

Бессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоровБессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоровPositive Hack Days
 
RDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRAMBLER&Co
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grailsguest32215a
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWPositive Hack Days
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)ygoltsev
 
Пожиратели памяти в WordPress
Пожиратели памяти в WordPressПожиратели памяти в WordPress
Пожиратели памяти в WordPressKonstantin Kovshenin
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьMoscow.pm
 
RDSDataSource: Promises
RDSDataSource: PromisesRDSDataSource: Promises
RDSDataSource: PromisesRAMBLER&Co
 
Филипп Ковалев — Путь в npm
Филипп Ковалев — Путь в npmФилипп Ковалев — Путь в npm
Филипп Ковалев — Путь в npmYandex
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎mayperl
 
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Ontico
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
ProcessingとMaxMSPの連携
ProcessingとMaxMSPの連携ProcessingとMaxMSPの連携
ProcessingとMaxMSPの連携Aki Sato
 
Fabric для управления серверами
Fabric для управления серверамиFabric для управления серверами
Fabric для управления серверамиMaxim Kulsha
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
10 ns error
10   ns error10   ns error
10 ns errorNoveo
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколыRoman Brovko
 
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep «Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep e-Legion
 

Tendances (20)

Бессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоровБессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоров
 
RDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на Swift
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grails
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
 
Пожиратели памяти в WordPress
Пожиратели памяти в WordPressПожиратели памяти в WordPress
Пожиратели памяти в WordPress
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать жить
 
RDSDataSource: Promises
RDSDataSource: PromisesRDSDataSource: Promises
RDSDataSource: Promises
 
Филипп Ковалев — Путь в npm
Филипп Ковалев — Путь в npmФилипп Ковалев — Путь в npm
Филипп Ковалев — Путь в npm
 
PowerShell
PowerShellPowerShell
PowerShell
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
 
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
ProcessingとMaxMSPの連携
ProcessingとMaxMSPの連携ProcessingとMaxMSPの連携
ProcessingとMaxMSPの連携
 
Fabric для управления серверами
Fabric для управления серверамиFabric для управления серверами
Fabric для управления серверами
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
10 ns error
10   ns error10   ns error
10 ns error
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
 
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep «Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
 
Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
 

En vedette

Htel Serviced Apartments, Informatief
Htel Serviced Apartments, InformatiefHtel Serviced Apartments, Informatief
Htel Serviced Apartments, Informatiefguest8b8230
 
Turning the IT Dept. Outward
Turning the IT Dept. OutwardTurning the IT Dept. Outward
Turning the IT Dept. OutwardBohyun Kim
 
Leveraging You: Developing an Online Presence for the Job Search and Beyond
Leveraging You: Developing an Online Presence for the Job Search and BeyondLeveraging You: Developing an Online Presence for the Job Search and Beyond
Leveraging You: Developing an Online Presence for the Job Search and BeyondBohyun Kim
 
Работа с унаследованным кодом. Есть ли жизнь после коммита.
Работа с унаследованным кодом. Есть ли жизнь после коммита.Работа с унаследованным кодом. Есть ли жизнь после коммита.
Работа с унаследованным кодом. Есть ли жизнь после коммита.Vadim Kruchkov
 
Quick & Easy Data Visualization with Google Visualization API + Google Char...
Quick & Easy Data Visualization with Google Visualization API + Google Char...Quick & Easy Data Visualization with Google Visualization API + Google Char...
Quick & Easy Data Visualization with Google Visualization API + Google Char...Bohyun Kim
 
The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...
The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...
The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...Bohyun Kim
 
Jerks At Work - Task 2997
Jerks At Work - Task 2997Jerks At Work - Task 2997
Jerks At Work - Task 2997guest0d9001c
 
Jerks At Work - Task 2997
Jerks At Work - Task 2997Jerks At Work - Task 2997
Jerks At Work - Task 2997guest0d9001c
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
Avatars In The Working Environment
Avatars In The Working EnvironmentAvatars In The Working Environment
Avatars In The Working Environmentguest0d9001c
 
How To Manage A Difficult Conversation At Work - Task 3812
How To Manage A Difficult Conversation At Work - Task 3812How To Manage A Difficult Conversation At Work - Task 3812
How To Manage A Difficult Conversation At Work - Task 3812guest0d9001c
 
Excel avanzado primera parte
Excel avanzado primera parteExcel avanzado primera parte
Excel avanzado primera parteEverth Sanabria
 
Imagens do jogo PES 2011
Imagens do jogo PES 2011Imagens do jogo PES 2011
Imagens do jogo PES 2011Luansobreira
 

En vedette (20)

Pavilion Photo Page 1
Pavilion Photo Page 1Pavilion Photo Page 1
Pavilion Photo Page 1
 
Meet Eat & Play
Meet Eat & PlayMeet Eat & Play
Meet Eat & Play
 
Htel Serviced Apartments, Informatief
Htel Serviced Apartments, InformatiefHtel Serviced Apartments, Informatief
Htel Serviced Apartments, Informatief
 
Awi cmip peru_nomv
Awi cmip peru_nomvAwi cmip peru_nomv
Awi cmip peru_nomv
 
Turning the IT Dept. Outward
Turning the IT Dept. OutwardTurning the IT Dept. Outward
Turning the IT Dept. Outward
 
Leveraging You: Developing an Online Presence for the Job Search and Beyond
Leveraging You: Developing an Online Presence for the Job Search and BeyondLeveraging You: Developing an Online Presence for the Job Search and Beyond
Leveraging You: Developing an Online Presence for the Job Search and Beyond
 
Работа с унаследованным кодом. Есть ли жизнь после коммита.
Работа с унаследованным кодом. Есть ли жизнь после коммита.Работа с унаследованным кодом. Есть ли жизнь после коммита.
Работа с унаследованным кодом. Есть ли жизнь после коммита.
 
Quick & Easy Data Visualization with Google Visualization API + Google Char...
Quick & Easy Data Visualization with Google Visualization API + Google Char...Quick & Easy Data Visualization with Google Visualization API + Google Char...
Quick & Easy Data Visualization with Google Visualization API + Google Char...
 
The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...
The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...
The Mobile Web and the Mobile Websites of Libraries: How They Changed for the...
 
Jerks At Work - Task 2997
Jerks At Work - Task 2997Jerks At Work - Task 2997
Jerks At Work - Task 2997
 
Jerks At Work - Task 2997
Jerks At Work - Task 2997Jerks At Work - Task 2997
Jerks At Work - Task 2997
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
Avatars In The Working Environment
Avatars In The Working EnvironmentAvatars In The Working Environment
Avatars In The Working Environment
 
How To Manage A Difficult Conversation At Work - Task 3812
How To Manage A Difficult Conversation At Work - Task 3812How To Manage A Difficult Conversation At Work - Task 3812
How To Manage A Difficult Conversation At Work - Task 3812
 
Excel avanzado primera parte
Excel avanzado primera parteExcel avanzado primera parte
Excel avanzado primera parte
 
Imagens do jogo PES 2011
Imagens do jogo PES 2011Imagens do jogo PES 2011
Imagens do jogo PES 2011
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdf
 
Presentación1
Presentación1Presentación1
Presentación1
 
Corrida de Toiros
Corrida de ToirosCorrida de Toiros
Corrida de Toiros
 
Autoestima
AutoestimaAutoestima
Autoestima
 

Similaire à Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием расширения libevent

Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersPositive Hack Days
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Alexey Kachayev
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ontico
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени. beshkenadze
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill Chebunin
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf Conference
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demomegakott
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Web осень 2013 лекция 5
Web осень 2013 лекция 5Web осень 2013 лекция 5
Web осень 2013 лекция 5Technopark
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеAlex Tumanoff
 

Similaire à Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием расширения libevent (20)

Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
Введение в Docker
Введение в DockerВведение в Docker
Введение в Docker
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Node.js (RichClient)
 Node.js (RichClient) Node.js (RichClient)
Node.js (RichClient)
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappers
 
бегун
бегунбегун
бегун
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
бегун
бегунбегун
бегун
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Web осень 2013 лекция 5
Web осень 2013 лекция 5Web осень 2013 лекция 5
Web осень 2013 лекция 5
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
 

Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием расширения libevent