59

Ph per のための php 最適

Embed Size (px)

DESCRIPTION

第二回 岡山php勉強会

Citation preview

Page 1: Ph per のための php 最適
Page 2: Ph per のための php 最適

目次

1 自己紹介

2 比較

3 echo と print

4 include と require

5 まとめ

Page 3: Ph per のための php 最適

目次

1 自己紹介

2 比較

3 echo と print

4 include と require

5 まとめ

Page 4: Ph per のための php 最適

1 自己紹介

•曽根 壮大(そね たけとも)

•通称名 そーだい

名前

•ぴちぴちの27歳

•娘の名前は徠楽(らいら)と煌楽(きらら)

年齢等

•福山の某印刷会社でWEBの設計から実装まで担当→今月から岡山のWEB系の会社に転職しました!

•備後界隈では最弱

•前々職は国家の犬(最前線で踊ってた)

職業

• LinuxとDBをメインにPHPなどのスクリプト言語とかも少々(LLが好き)

•でも一番「べしゃりが得意」

得意分野(IT的な意味で)

•東日本震災のための格闘ゲームのチャリティ大会の運営とかしてます

趣味

Page 5: Ph per のための php 最適

1 自己紹介

主にTwitterで活動してます

@soudai1025

Page 6: Ph per のための php 最適

1 自己紹介

主にTwitterで活動してます

@soudai1025

このアイコン要注意

Page 7: Ph per のための php 最適

1 自己紹介

主にTwitterで活動してます

@soudai1025

このアイコン要注意

Page 8: Ph per のための php 最適

1 自己紹介

主にTwitterで活動してます

@soudai1025

このアイコン要注意

技術的なことはツイートしてません!

Page 9: Ph per のための php 最適

1 自己紹介

主にTwitterで活動してます

@soudai1025

このアイコン要注意

熱狂的な一部のファンも・・・

Page 10: Ph per のための php 最適

目次

1 自己紹介

2 比較

3 echo と print

4 include と require

5 まとめ

Page 11: Ph per のための php 最適

2 比較

== は曖昧な比較

=== は厳格な比較

Page 12: Ph per のための php 最適

2 比較

== は曖昧な比較

=== は厳格な比較

なにが違うの?

Page 13: Ph per のための php 最適

2 比較

== は曖昧な比較

=== は厳格な比較

なにが違うの?→ 型に対する比較が違う!

Page 14: Ph per のための php 最適

2 比較

== は曖昧な比較

=== は厳格な比較

なにが違うの?→ 型に対する比較が違う!

Page 15: Ph per のための php 最適

2 比較

他にも・・・

Page 16: Ph per のための php 最適

2 比較

他にも・・・

Page 17: Ph per のための php 最適

2 比較

==がダメならis_nullを使えばいいじゃない。

Page 18: Ph per のための php 最適

2 比較

==がダメならis_nullを使えばいいじゃない。

===とis_nullどっちが速いの?

Page 19: Ph per のための php 最適

2 比較

==がダメならis_nullを使えばいいじゃない。

===とis_nullどっちが速いの?

試してみた

http://ideone.com/

Page 20: Ph per のための php 最適

2 比較

Page 21: Ph per のための php 最適

2 比較

=== null is_null

Page 22: Ph per のための php 最適

2 比較

=== null is_null

===の方がはやい!!

Page 23: Ph per のための php 最適

2 比較

===はこれを意識して使わなきゃダメ! http://php.net/manual/ja/types.comparisons.php から引用

Page 24: Ph per のための php 最適

2 比較

===はこれを意識して使わなきゃダメ! http://php.net/manual/ja/types.comparisons.php から引用

Page 25: Ph per のための php 最適

2 比較

直感的にわかりやすい関数群 http://php.net/manual/ja/types.comparisons.php から引用

Page 26: Ph per のための php 最適

2 比較

直感的にわかりやすい関数群 http://php.net/manual/ja/types.comparisons.php から引用

Page 27: Ph per のための php 最適

目次

1 自己紹介

2 比較

3 echo と print

4 include と require

5 まとめ

Page 28: Ph per のための php 最適

3 echoとprint

echoとprintの違いってなんだろう?

Page 29: Ph per のための php 最適

3 echoとprint

echoとprintの違いってなんだろう?

1 2つとも関数では無く、言語構造

Page 30: Ph per のための php 最適

3 echoとprint

echoとprintの違いってなんだろう?

1 2つとも関数では無く、言語構造

2 echoは「,」で文字列を区切って出力できる

Page 31: Ph per のための php 最適

3 echoとprint

echoとprintの違いってなんだろう?

1 2つとも関数では無く、言語構造

2 echoは「,」で文字列を区切って出力できる

3 printは結果を返すが、echoは返さない。

Page 32: Ph per のための php 最適

3 echoとprint

echoとprintの違いってなんだろう?

1 2つとも関数では無く、言語構造

2 echoは「,」で文字列を区切って出力できる

3 printは結果を返すが、echoは返さない。

Page 33: Ph per のための php 最適

3 echoとprint

ソースを見てみる

Page 34: Ph per のための php 最適

3 echoとprint

ソースを見てみる

ソースコードはこちら http://jp.php.net/downloads.php

Page 35: Ph per のための php 最適

3 echoとprint

ソースを見てみる

ソースコードはこちら

Zend/zend_compile.c

print ・・・ zend_do_print()

echo ・・・ zend_do_echo()

http://jp.php.net/downloads.php

Page 36: Ph per のための php 最適

3 echoとprint

print ・・・ zend_do_print()

zend_do_print()ではresultに返り値を必要としており,result変数に返り値が設定されている

Page 37: Ph per のための php 最適

3 echoとprint

print ・・・ zend_do_print()

zend_do_print()ではresultに返り値を必要としており,result変数に返り値が設定されている

だからechoの方が速い!(返り値がないから

Page 38: Ph per のための php 最適

目次

1 自己紹介

2 比較

3 echo と print

4 include と require

5 まとめ

Page 39: Ph per のための php 最適

4 include と require

1 ループ処理での利用

・includeは可能

・requireは不可能

Page 40: Ph per のための php 最適

4 include と require

1 ループ処理での利用

・includeは可能

・requireは不可能

2 エラー処理

・includeは続行

・requireは不可能

Page 41: Ph per のための php 最適

4 include と require

1 ループ処理での利用

・includeは可能

・requireは不可能

2 エラー処理

・includeは続行

・requireは不可能

3 実行速度

require_once > require > include_once > include

Page 42: Ph per のための php 最適

4 include と require

1 ループ処理での利用

・includeは可能

・requireは不可能

2 エラー処理

・includeは続行

・requireは不可能

3 実行速度

require_once > require > include_once > include ↑この順番は本当か?

Page 43: Ph per のための php 最適

4 include と require

…色々実験した結果

1 単純なファイルの呼び出しでは大差なし

Page 44: Ph per のための php 最適

4 include と require

…色々実験した結果

1 単純なファイルの呼び出しでは大差なし

(むしろOS側の影響が大きい)

Page 45: Ph per のための php 最適

4 include と require

…色々実験した結果

1 単純なファイルの呼び出しでは大差なし

(むしろOS側の影響が大きい)

2 処理としては

Page 46: Ph per のための php 最適

4 include と require

…色々実験した結果

1 単純なファイルの呼び出しでは大差なし

(むしろOS側の影響が大きい)

2 処理としては require_once = 読み込み + 一意チェック + エラーチェック require = 読み込み + エラーチェック Include_once = 読み込み + 一意チェック include = 読み込み

Page 47: Ph per のための php 最適

4 include と require

…色々実験した結果

1 単純なファイルの呼び出しでは大差なし

(むしろOS側の影響が大きい)

2 処理としては require_once = 読み込み + 一意チェック + エラーチェック require = 読み込み + エラーチェック Include_once = 読み込み + 一意チェック include = 読み込み

3 実際には それ以外にも多くの影響を受けている

Page 48: Ph per のための php 最適

目次

1 自己紹介

2 比較

3 echo と print

4 include と require

5 まとめ

Page 49: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

Page 50: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

Page 51: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

Page 52: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

Page 53: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

・ 速ければ良いというものではない

Page 54: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

・ 速ければ良いというものではない

・ 良いソースを追求する

Page 55: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

・ 速ければ良いというものではない

・ 良いソースを追求する←工数と要相談

Page 56: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

・ 速ければ良いというものではない

・ 良いソースを追求する←工数と要相談

3 phpの内部処理を知る

Page 57: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

・ 速ければ良いというものではない

・ 良いソースを追求する←工数と要相談

3 phpの内部処理を知る

・ ネットの情報を検証する癖付け

Page 58: Ph per のための php 最適

5 まとめ

1 実行速度に対する最適化

・ 「php 最適化」で一度はぐぐってみる

・ 最適化はインフラを含めた広い視野で検討する

2 人間に対する最適化

・ 速ければ良いというものではない

・ 良いソースを追求する←工数と要相談

3 phpの内部処理を知る

・ ネットの情報を検証する癖付け

・ phpのできることを知る

Page 59: Ph per のための php 最適

ご清聴、有難う御座いました

誹謗中傷ツッコミは #たけとも残念まで

@soudai1025の作品が読めるのはTwitterだけ!