PHP performance hints. Александр Веремьев (Zend Framework core team) alexander.v@zend.com.

Презентация:



Advertisements
Похожие презентации
Тема 11 Медицинская помощь и лечение (схема 1). Тема 11 Медицинская помощь и лечение (схема 2)
Advertisements

Вариант Презентация "Осень золотая".
Дни недели Температура (С 0 ) 1. Сколько дней температура была выше 16 0 ? 2. Какого.

ОСОБЕННОСТИ РЕАЛИЗАЦИИ ДОПОЛНИТЕЛЬНЫХ МЕРОПРИЯТИЙ ПО СНИЖЕНИЮ НАПРЯЖЕННОСТИ НА РЫНКЕ ТРУДА СУБЪЕКТОВ РОССИЙСКОЙ ФЕДЕРАЦИИ В 2011 ГОДУ РОССИЯ 2010.
1 Приоритетный Национальный проект «ОБРАЗОВАНИЕ» ПРОГРАММА РАЗВИТИЯ ДО 2015 ГОДА муниципального общеобразовательного учреждения «Средняя общеобразовательная.
Php Что такое php? PHP – это высокоуровневый язык программирования для WEB работающий по принципу транслирующего интерпретатора.
Найди недостающее слагаемое
1 ЧТО МОЖНО ДЕЛАТЬ? ЧЕГО ДЕЛАТЬ НЕЛЬЗЯ? ЧТО ЛЮДИ ОБЯЗАНЫ ДЕЛАТЬ? ЧЕГО ОНИ ДЕЛАТЬ НЕ ОБЯЗАНЫ? 3 КАКИЕ У ЧЕЛОВЕКА ЕСТЬ ПРАВА? КАКИЕ У ЧЕЛОВЕКА ЕСТЬ ОБЯЗАННОСТИ?
10. Дано: Найти: К А B 4 М О С N Дано: Найти: AB O C.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Типовые расчёты Растворы
Тема урока: Сколько понадобилось мышке кубиков для башни? 10.
. Куриная грудка Грибы Лук Майонез Сыр Масло растительное Картошка.
Информатика ЕГЭ Уровень А5. Вариант 1 Определите значения переменных a, b, c после выполнения следующего фрагмента программы: a:=5; b:=1; a:=a+b; if a>10.
Увеличение и уменьшение в несколько раз. Математика. 2 класс.
Каратанова Марина Николаевна МОУ СОШ 256 г.Фокино.
Решение заданий В7 степени и корни по материалам открытого банка задач ЕГЭ по математике 2013 года МБОУ СОШ 5 – «Школа здоровья и развития» г. Радужный.
Учитель начальных классов Акиншина Н.Н Зарядка для глаз.
Красноярск Владивосток Вологда Спутник TERRA, 1000 м день 1. 04:30-05: :00-07:00 ночь 1. 15:30-16: :00-18:00 день 1. 04:30-05: :00-07:00.
Транксрипт:

PHP performance hints. Александр Веремьев (Zend Framework core team)

2 Передача строк по ссылке

3 function test1($str) { $chCounter = 0; for ($count = 0; $count < strlen($str); $count++) { if ($str[$count] == '4') $chCounter++; } return $chCounter; }

4 Передача строк по ссылке function test2(&$str) { $chCounter = 0; for ($count = 0; $count < strlen($str); $count++) { if ($str[$count] == '4') $chCounter++; } return $chCounter; }

5 Передача строк по ссылке Размер строки (Мб)test1() (сек)test2() (сек)

6 Циклические ссылки

7 Циклические ссылки в структурах объектов Object 3Object 1Object 2 Object 4 Object 5 $var1

8 Циклические ссылки в структурах объектов unset($var1); Object 3Object 1Object 2 Object 4 Object 5 $var1

9 Циклические ссылки в структурах объектов unset($var1); Object 3Object 1Object 2 Object 4 Object 5 $var1

10 Циклические ссылки в структурах объектов $var1Object 3Object 1Object 2 Object 4 Object 5 proxy

11.= оператор

12.= оператор и обработка больших строк $str = ''; while ($condition) {... $str.= $something; }

13.= оператор и обработка больших строк $str = ''; while ($condition) {... $str.= $something; }

14.= оператор и обработка больших строк $str = ''; while ($condition) {... $str.= $something; }

15.= оператор и обработка больших строк $str = ''; while ($condition) {... $str.= $something; }

16.= оператор и обработка больших строк $str = ''; while ($condition) {... $str.= $something; }

17.= оператор и обработка больших строк $substrings = array(); while ($condition) {... $substrings[] = $something; } $str = implode($substrings);

18 Неэффективность serialize()/unserialize()

19 Неэффективность serialize()/unserialize() array(134, 'test stri\'ng', array('float test', ), 456) => a:4:{i:0;i:134;i:1;s:12:"test stri'ng";i:2;a:2:{i:0;s:10:"float test";i:1; d: ;}i:3;i:456;}

20 Неэффективность serialize()/unserialize() array(134, 'test stri\'ng', array('float test', ), 456) => a:4:{i:0;i:134;i:1;s:12:"test stri'ng";i:2;a:2:{i:0;s:10:"float test";i:1; d: ;}i:3;i:456;} array(134, 'test stri\'ng', array('long test', ), 456) => a:4:{i:0;i:134;i:1;s:12:"test stri'ng";i:2;a:2:{i:0;s:9:"long test";i:1; i: ;}i:3;i:456;}

21 Ручной method inlining

22 Замена объектов массивами

23 Вопросы Александр Веремьев