Submit Search
Upload
PHP conference 2013 ja report
•
1 like
•
782 views
輝 子安
Follow
PHPカンファレンス2013のセッション、「PHPコアから読み解く、定石の嘘ホント」を参考にまとめたスライドです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
Workshop: Docker on Elastic Beanstalk
Workshop: Docker on Elastic Beanstalk
輝 子安
Aw svs trifortクラウド選びのポイント
Aw svs trifortクラウド選びのポイント
Taimei Omata
私はこれでエバンジェリストをやめました
私はこれでエバンジェリストをやめました
Yasuhiro Horiuchi
1秒間に250通のメールをさばくAWSの使い方
1秒間に250通のメールをさばくAWSの使い方
Tokyo Otaku Mode Inc.
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話
Yasuhiro Horiuchi
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
真吾 吉田
Cuestionario de organización.
Cuestionario de organización.
George Salomón
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
iwata jaws-ug
Recommended
Workshop: Docker on Elastic Beanstalk
Workshop: Docker on Elastic Beanstalk
輝 子安
Aw svs trifortクラウド選びのポイント
Aw svs trifortクラウド選びのポイント
Taimei Omata
私はこれでエバンジェリストをやめました
私はこれでエバンジェリストをやめました
Yasuhiro Horiuchi
1秒間に250通のメールをさばくAWSの使い方
1秒間に250通のメールをさばくAWSの使い方
Tokyo Otaku Mode Inc.
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話
Yasuhiro Horiuchi
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
真吾 吉田
Cuestionario de organización.
Cuestionario de organización.
George Salomón
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
JAWS DAYS 2017 [AWSワークショップ] AWS初心者いらっしゃい
iwata jaws-ug
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
Yusuke KUROIWA
[JAWS DAYS 2017 ワークショップ] 不安で夜眠れないAWSアカウント管理者に送る処方箋という名のハンズオン
[JAWS DAYS 2017 ワークショップ] 不安で夜眠れないAWSアカウント管理者に送る処方箋という名のハンズオン
Keisuke Kadoyama
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
Hiroyuki Hiki
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
Protractor under the hood
Protractor under the hood
輝 子安
そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)
輝 子安
Dockerで構成するWebサービス 〜EmotionTechの場合〜
Dockerで構成するWebサービス 〜EmotionTechの場合〜
輝 子安
Scala for Java programmers
Scala for Java programmers
輝 子安
Garbage Collection for Dummies
Garbage Collection for Dummies
輝 子安
JavaOne Guide for the Petite Bourgeoisie
JavaOne Guide for the Petite Bourgeoisie
輝 子安
Java, Moving Forward
Java, Moving Forward
輝 子安
Java, Up to Date
Java, Up to Date
輝 子安
Java, Up to Date Sources
Java, Up to Date Sources
輝 子安
Hello, Guava ! samples
Hello, Guava ! samples
輝 子安
Hello, Guava !
Hello, Guava !
輝 子安
Tokyo Cabinet & Tokyo Tyrant
Tokyo Cabinet & Tokyo Tyrant
輝 子安
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
More Related Content
Viewers also liked
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
Yusuke KUROIWA
[JAWS DAYS 2017 ワークショップ] 不安で夜眠れないAWSアカウント管理者に送る処方箋という名のハンズオン
[JAWS DAYS 2017 ワークショップ] 不安で夜眠れないAWSアカウント管理者に送る処方箋という名のハンズオン
Keisuke Kadoyama
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
Hiroyuki Hiki
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
Viewers also liked
(8)
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
[JAWS DAYS 2017 ワークショップ] 不安で夜眠れないAWSアカウント管理者に送る処方箋という名のハンズオン
[JAWS DAYS 2017 ワークショップ] 不安で夜眠れないAWSアカウント管理者に送る処方箋という名のハンズオン
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
サーバーレスの今とこれから
サーバーレスの今とこれから
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
Getting Started With SlideShare
Getting Started With SlideShare
More from 輝 子安
Protractor under the hood
Protractor under the hood
輝 子安
そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)
輝 子安
Dockerで構成するWebサービス 〜EmotionTechの場合〜
Dockerで構成するWebサービス 〜EmotionTechの場合〜
輝 子安
Scala for Java programmers
Scala for Java programmers
輝 子安
Garbage Collection for Dummies
Garbage Collection for Dummies
輝 子安
JavaOne Guide for the Petite Bourgeoisie
JavaOne Guide for the Petite Bourgeoisie
輝 子安
Java, Moving Forward
Java, Moving Forward
輝 子安
Java, Up to Date
Java, Up to Date
輝 子安
Java, Up to Date Sources
Java, Up to Date Sources
輝 子安
Hello, Guava ! samples
Hello, Guava ! samples
輝 子安
Hello, Guava !
Hello, Guava !
輝 子安
Tokyo Cabinet & Tokyo Tyrant
Tokyo Cabinet & Tokyo Tyrant
輝 子安
More from 輝 子安
(12)
Protractor under the hood
Protractor under the hood
そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)
Dockerで構成するWebサービス 〜EmotionTechの場合〜
Dockerで構成するWebサービス 〜EmotionTechの場合〜
Scala for Java programmers
Scala for Java programmers
Garbage Collection for Dummies
Garbage Collection for Dummies
JavaOne Guide for the Petite Bourgeoisie
JavaOne Guide for the Petite Bourgeoisie
Java, Moving Forward
Java, Moving Forward
Java, Up to Date
Java, Up to Date
Java, Up to Date Sources
Java, Up to Date Sources
Hello, Guava ! samples
Hello, Guava ! samples
Hello, Guava !
Hello, Guava !
Tokyo Cabinet & Tokyo Tyrant
Tokyo Cabinet & Tokyo Tyrant
Recently uploaded
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
LoriGlavin3
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
Recently uploaded
(20)
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
How to write a Business Continuity Plan
How to write a Business Continuity Plan
PHP conference 2013 ja report
1.
「PHPコアから読み解く 定石の嘘ホント」より @akirakoyasu PHP CONFERENCE 2013
9/14 Sat. 大田区産業プラザPiO
2.
Copyright © 2013
Akira Koyasu. Some rights reserved. Theory 2 定石、定跡(じょうせき)とは、アブストラクトゲームに おける用語である。お互いが最善と考えられる手を行った 場合の一連の手のこと。チェスでは、「セオリー」とも。 石を用いる囲碁、オセロ、連珠などでは「定石」が、駒を 用いる将棋、チェスなどでは「定跡」が用いられる。 - ja.wikipedia.org photo#1
3.
Copyright © 2013
Akira Koyasu. Some rights reserved. 3 Rule 2つのコードを見せます どちらが速く動くか考えてください 考える時間は10秒 相談しないで!
4.
Copyright © 2013
Akira Koyasu. Some rights reserved. Execution Time 4 $time1 = microtime(true); // test code loop (100000 times) $time2 = microtime(true); printf("time: %f sn", ($time2 - $time1));
5.
Copyright © 2013
Akira Koyasu. Some rights reserved. opcode 5 $ sudo pecl install channel://pecl.php.net/vld-0.12.0 $ php -dvld.active=1 -dvld.execute=0 test.php Extension vld
6.
Copyright © 2013
Akira Koyasu. Some rights reserved. PHP runtime 6 .php.php.php Parser Compiler Virtual Machine
7.
Copyright © 2013
Akira Koyasu. Some rights reserved. PHP runtime 6 .php.php.php Parser Compiler Virtual Machine AST 構文解析
8.
Copyright © 2013
Akira Koyasu. Some rights reserved. PHP runtime 6 .php.php.php Parser Compiler Virtual Machineopcode AST 構文解析 コンパイル
9.
Copyright © 2013
Akira Koyasu. Some rights reserved. PHP runtime 6 .php.php.php Parser Compiler Virtual Machineopcode AST 構文解析 コンパイル 実行
10.
Copyright © 2013
Akira Koyasu. Some rights reserved. 7 Ready?
11.
Copyright © 2013
Akira Koyasu. Some rights reserved. Loop 8 A B
12.
Copyright © 2013
Akira Koyasu. Some rights reserved. Loop 8 $c = sizeof($arr); for ($i = 0; $i < $c; $i++) { $t = $arr[$i]; } foreach ($arr as $val) { $t = $val; } A B ただし、 とする$arr = range(0, 100);
13.
Copyright © 2013
Akira Koyasu. Some rights reserved. Loop 8 $c = sizeof($arr); for ($i = 0; $i < $c; $i++) { $t = $arr[$i]; } foreach ($arr as $val) { $t = $val; } A B ただし、 とする$arr = range(0, 100);
14.
Copyright © 2013
Akira Koyasu. Some rights reserved. foreach ($arr as $val) { $t = $val; } $c = sizeof($arr); for ($i = 0; $i < $c; $i++) { $t = $arr[$i]; } FE_RESET FE_FETCH DO_FCALL 'sizeof' IS_SMALLER POST_INC FETCH_DIM_R Answer 9 A B
15.
Copyright © 2013
Akira Koyasu. Some rights reserved. foreach ($arr as $val) { $t = $val; } $c = sizeof($arr); for ($i = 0; $i < $c; $i++) { $t = $arr[$i]; } time: 0.683817 s FE_RESET FE_FETCH time: 1.043019 s DO_FCALL 'sizeof' IS_SMALLER POST_INC FETCH_DIM_R Answer 9 A B
16.
Copyright © 2013
Akira Koyasu. Some rights reserved. foreach ($arr as $val) { $t = $val; } $c = sizeof($arr); for ($i = 0; $i < $c; $i++) { $t = $arr[$i]; } time: 0.683817 s FE_RESET FE_FETCH time: 1.043019 s DO_FCALL 'sizeof' IS_SMALLER POST_INC FETCH_DIM_R Answer 9 A B
17.
Copyright © 2013
Akira Koyasu. Some rights reserved. foreach ($arr as $val) { $t = $val; } $c = sizeof($arr); for ($i = 0; $i < $c; $i++) { $t = $arr[$i]; } time: 0.683817 s FE_RESET FE_FETCHtime: 1.043019 s DO_FCALL 'sizeof' IS_SMALLER POST_INC FETCH_DIM_R Answer 9 A B
18.
Copyright © 2013
Akira Koyasu. Some rights reserved. Elements 10 A B
19.
Copyright © 2013
Akira Koyasu. Some rights reserved. Elements 10 if (count($arr) > 0) { ; } if (!empty($arr)) { ; } $arr = array();ただし、 とする A B
20.
Copyright © 2013
Akira Koyasu. Some rights reserved. Elements 10 if (count($arr) > 0) { ; } if (!empty($arr)) { ; } $arr = array();ただし、 とする A B
21.
Copyright © 2013
Akira Koyasu. Some rights reserved. Answer 11 if (count($arr) > 0) { ; } if (!empty($arr)) { ; } A B DO_FCALL 'count' IS_SMALLER ISSET_ISEMPTY_VAR BOOL_NOT
22.
Copyright © 2013
Akira Koyasu. Some rights reserved. Answer 11 if (count($arr) > 0) { ; } if (!empty($arr)) { ; } A B time: 0.026228 s time: 0.008356 s DO_FCALL 'count' IS_SMALLER ISSET_ISEMPTY_VAR BOOL_NOT
23.
Copyright © 2013
Akira Koyasu. Some rights reserved. Answer 11 if (count($arr) > 0) { ; } if (!empty($arr)) { ; } A B time: 0.026228 s time: 0.008356 s DO_FCALL 'count' IS_SMALLER ISSET_ISEMPTY_VAR BOOL_NOT
24.
Copyright © 2013
Akira Koyasu. Some rights reserved. Answer 11 if (count($arr) > 0) { ; } if (!empty($arr)) { ; } A B time: 0.026228 s time: 0.008356 s DO_FCALL 'count' IS_SMALLER ISSET_ISEMPTY_VAR BOOL_NOT
25.
Copyright © 2013
Akira Koyasu. Some rights reserved. 12 Points 測ってみる 調べてみる 考えてみる
26.
Copyright © 2013
Akira Koyasu. Some rights reserved. 13 Any Questions?
27.
Copyright © 2013
Akira Koyasu. Some rights reserved. Notes This work is licensed under the Creative Commons Attribution- NonCommercial 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/. 14 photo#1: http://www.flickr.com/photos/sbl/1617711/ Thank you very much, Feedback Welcome! http://twitter.com/akirakoyasu http://fb.me/akirakoyasu http://www.akirakoyasu.net
Download now