Submit Search
Upload
composerの遅さをまじめに考える #phpstudy
•
23 likes
•
29,430 views
Hiraku Nakano
Follow
第98回PHP勉強会の発表内容です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 59
Download now
Download to read offline
Recommended
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~コマンドライン・インターフェース(CLI)を使ってみましょう~
NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~コマンドライン・インターフェース(CLI)を使ってみましょう~
griddb
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
伊藤 祐策
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリー
ke-m kamekoopa
究極のゲーム用通信プロトコルを探せ!
究極のゲーム用通信プロトコルを探せ!
Ryosuke Otsuya
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
Recommended
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~コマンドライン・インターフェース(CLI)を使ってみましょう~
NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~コマンドライン・インターフェース(CLI)を使ってみましょう~
griddb
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
伊藤 祐策
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリー
ke-m kamekoopa
究極のゲーム用通信プロトコルを探せ!
究極のゲーム用通信プロトコルを探せ!
Ryosuke Otsuya
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
静的型付け言語Python
静的型付け言語Python
kiki utagawa
目grep入門 +解説
目grep入門 +解説
murachue
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
最近のやられアプリを試してみた
最近のやられアプリを試してみた
zaki4649
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
gree_tech
レガシーコード改善のススメ
レガシーコード改善のススメ
Akira Hirasawa
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
terurou
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
NGINX, Inc.
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
hironroinakae
アジャイルな受託開発のみらい
アジャイルな受託開発のみらい
Fumihiko Kinoshita
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
Hyperleger Tokyo Meetup
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
.NET 7期待の新機能
.NET 7期待の新機能
TomomitsuKusaba
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
LINE Corporation
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
rockplace
composer-scriptsについて
composer-scriptsについて
Hiraku Nakano
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt
Hiraku Nakano
More Related Content
What's hot
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
静的型付け言語Python
静的型付け言語Python
kiki utagawa
目grep入門 +解説
目grep入門 +解説
murachue
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
最近のやられアプリを試してみた
最近のやられアプリを試してみた
zaki4649
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
gree_tech
レガシーコード改善のススメ
レガシーコード改善のススメ
Akira Hirasawa
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
terurou
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
NGINX, Inc.
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
hironroinakae
アジャイルな受託開発のみらい
アジャイルな受託開発のみらい
Fumihiko Kinoshita
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
Hyperleger Tokyo Meetup
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
.NET 7期待の新機能
.NET 7期待の新機能
TomomitsuKusaba
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
LINE Corporation
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
rockplace
What's hot
(20)
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
静的型付け言語Python
静的型付け言語Python
目grep入門 +解説
目grep入門 +解説
TLS, HTTP/2演習
TLS, HTTP/2演習
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
最近のやられアプリを試してみた
最近のやられアプリを試してみた
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
レガシーコード改善のススメ
レガシーコード改善のススメ
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
アジャイルな受託開発のみらい
アジャイルな受託開発のみらい
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
実践イカパケット解析
実践イカパケット解析
.NET 7期待の新機能
.NET 7期待の新機能
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
Similar to composerの遅さをまじめに考える #phpstudy
composer-scriptsについて
composer-scriptsについて
Hiraku Nakano
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt
Hiraku Nakano
Composerはじめました
Composerはじめました
Takashi Nojima
vimプラグインでよりよい(ry
vimプラグインでよりよい(ry
soh335
Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!
Sotaro Omura
GitHubで見つかるFileMaker関連ソフトウェア
GitHubで見つかるFileMaker関連ソフトウェア
Atsushi Matsuo
Similar to composerの遅さをまじめに考える #phpstudy
(6)
composer-scriptsについて
composer-scriptsについて
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt
Composerはじめました
Composerはじめました
vimプラグインでよりよい(ry
vimプラグインでよりよい(ry
Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!
GitHubで見つかるFileMaker関連ソフトウェア
GitHubで見つかるFileMaker関連ソフトウェア
More from Hiraku Nakano
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudy
Hiraku Nakano
JSON SchemaとPHP
JSON SchemaとPHP
Hiraku Nakano
こわくない同時実行制御
こわくない同時実行制御
Hiraku Nakano
PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介
Hiraku Nakano
pecl-AOPの紹介
pecl-AOPの紹介
Hiraku Nakano
URLで遊ぼう
URLで遊ぼう
Hiraku Nakano
Xml builderの紹介
Xml builderの紹介
Hiraku Nakano
More from Hiraku Nakano
(7)
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudy
JSON SchemaとPHP
JSON SchemaとPHP
こわくない同時実行制御
こわくない同時実行制御
PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介
pecl-AOPの紹介
pecl-AOPの紹介
URLで遊ぼう
URLで遊ぼう
Xml builderの紹介
Xml builderの紹介
Recently uploaded
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
Recently uploaded
(14)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
composerの遅さをまじめに考える #phpstudy
1.
composerの遅さを まじめに考える 第98回PHP勉強会 @Hiraku
2.
自己紹介 • 中野 拓
(@Hiraku) • 口癖「composerが遅い」 packagistのミラー作った http://packagist.jp • 2015/12からメルカリで働いています。
3.
今日は composerの話を しに来ました
4.
5.
composerは遅いのか
6.
composer遅いと言う人々 • 中国、フィリピン、日本、ブラジルあたりに 多いらしい • issueに文句を書いてる人は大体アジア人 •
北米ではcomposerは速い
7.
俺 俺
8.
composerを速くする活動 やってます • ミラーサイト http://packagist.jp •
並列化プラグイン hirak/prestissimo • https://packagist.org/packages/hirak/ prestissimo
9.
packagistのミラーサイト
10.
hirak/prestissimo (並列化プラグイン) インストールするだけで10倍ぐらい速くなります
11.
どちらもコマンド1行で使える # (ミラーサイトの有効化) $ composer
config -g repositories.packagist composer http:// packagist.jp # (並列化プラグインのインストール) $ composer global require hirak/prestissimo # フィードバック募集中!!
12.
なぜこれで速くなるのか を解説します
13.
composerが遅い理由 日本で
14.
サーバーが遠い …で終わるんだが
15.
あえて別の言い方をしたい
16.
光が遅いから。
17.
18.
なぜ”光”の話になるのか
19.
サーバーの場所 • packagist.org ←
たぶんフランスにある • github.com ← たぶんサンフランシスコにある • 日本からの通信で必ず通るもの =海底ケーブル =光ファイバー
20.
約8000km
21.
光は結構遅い • 真空で約30万km/s • 光ファイバー中で約20万km/s •
8000kmで片道最低40msかかる • (実際は他にも遅延原因があるから もっと遅い)
22.
「40msって速くね?」 • 物理限界が40msであって、実際は(ry • これにgithub.comの事情が加わる •
https://api.github.com から https://codeload.github.com へ 毎回リダイレクトしている
23.
HTTPSの往復 • ゼロからHTTPS通信すると、パケットの往復が4回発 生する • TCPのハンドシェイクで1往復 •
TLSのハンドシェイクで2往復 • HTTP本体で1往復 • 1回リダイレクトすると更に倍
24.
約8000km を8往復
25.
128,000km
26.
地球3.2周分 https://flic.kr/p/7icRw2
27.
composerはこれを 全zipに対して行っている
28.
それぞれが 地球3.2周分
29.
さすがの光でも • 片道40msで8回往復すると640ms • しかも実際は •
海底ケーブルは最短距離を通ってないし • 途中には様々なルーターやら何やらを通る からそこでも遅延がある
30.
実際の遅延時間
31.
curlで雑に測ってみる # (githubから適当なzipをダウンロードする) $ curl
--head --location --output prestissimo.zip https://github.com/hirak/prestissimo/archive/0.1.4.zip --write-out " time_namelookup: %{time_namelookup}n time_connect: %{time_connect}n time_appconnect: %{time_appconnect} n time_redirect: %{time_redirect}n time_total: %{time_total}" ... time_namelookup: 0.013 time_connect: 0.201 time_appconnect: 0.884 time_redirect: 1.270 time_total: 2.400
32.
(試行1回と雑なので、 目安だと思ってください)
33.
項目の意味 time_namelookup (0.013) 開始からDNS解決まで(秒) time_connect (0.201) 開始からTCPハンドシェイク完了まで(秒) time_appconnect (0.884) 開始からTLSハンドシェイク完了まで(秒) time_redirect (1.270) リダイレクトで費やした時間(秒) time_total (2.400) かかった時間全て(秒)
34.
フェーズ毎の値に修正 名前解決 0.013 TCPハンドシェイク 0.201
- 0.013 = 0.188 TLSハンドシェイク 0.884 - 0.201 = 0.683 リダイレクト一回分 1.270 HTTPの本体 2.400 - 1.270 - 0.884 = 0.246
35.
2.400秒 中の 0.640秒 が たぶん光のせい
36.
距離と遅延 • 物理的に通信してるのだから、物理的に距離 が遠いとその分遅れる • アジアや南米でcomposerが遅いのは、サー バーから物理的に遠いから
37.
composerを速くする方法
38.
解決方法 1. packagistやgithubが近くにあればいい 2. 往復を減らせばいい 3.
並列化して待ち時間を活用すればいい 4. 光がもっと速くなればいい←難しそう
39.
1. 距離を縮める • 近くにミラーサイトを建てる •
CDNが導入されてれば同じ効果がある (packagist本家が導入してくれれば…) • githubのミラーはちょっと大変…
40.
packagistに関しては packagist.jpミラーで 実装済み
41.
2. 往復を減らす(1) • zipあたり8往復するのは無駄 •
api.github.com→codeload.github.com リダイレクトをやめる 最初からcodeloadに取りに行く • これでzipあたり4往復減らせる
42.
さっきの例で、 1zipダウンロード時間の内訳 download 0.240 redirect 1.270 tls 0.683 tcp 0.188 dns 0.013
43.
リダイレクトを削る download 0.240 redirect 1.270 tls 0.683 tcp 0.188 dns 0.013
44.
2. 往復を減らす(2) • 同じコネクションを使いまわして次のzipをダ ウンロードする(Keep-Alive) •
初回は省略できないが、2回目以降TLSハンド シェイクまで省略できる(3往復)
45.
Keep-Aliveで2回目以降省略 download 0.240 redirect 1.270 tls 0.683 tcp 0.188 dns 0.013
46.
zip50個の場合 50 * 4
+ 49 * 3 = 347 往復の削減効果
47.
地球69.4周分 節約 https://flic.kr/p/7icRw2
48.
PHPでKeep-Aliveなリクエスト <?php $ch = curl_init(); curl_setopt($ch,
CURLOPT_URL, 'http://example.com/1.txt'); curl_exec($ch); // 同じ$chを使い回して2回目 curl_setopt($ch, CURLOPT_URL, 'http://example.com/2.txt'); curl_exec($ch); curl_close($ch);
49.
3. 並列化 • 待ち時間に別のダウンロードを行う •
通信路の暇をなくせる • 帯域を100%使いきったら、 並列化の効果は薄い (prestissimoは6並列にした) • PHPの場合、curl_multiを使えばできる
50.
リダイレクト削減と Keep-Aliveと 並列化は hirak/prestissimoで 実装済み
51.
解決方法の現状 packagistが近くにあれば packagist.jpで実装した リダイレクトを減らす hirak/prestissimoで実装した Keep-Aliveを使う
hirak/prestissimoで実装した 並列化する hirak/prestissimoで実装した 光が速くなれば 未解決
52.
インパクトのある部分は 結構つぶせた
53.
まとめ
54.
本当は • composerじゃなくて 光がクソ遅いのが全て悪い!と 言いたかったが… • 光の伝搬時間は全体の一部でしかない。 まだ我々には改善できることがある
55.
我々が知るべきこと • 地球規模だと光の遅さが体感できる • 物理限界を意識して実装しよう •
composerの実装・file_get_contents()は HTTP/1.0で、連続ダウンロードに向いていな い (curl使おうぜ)
56.
もっと詳しく知りたい人は ←この本にだいたい 書いてあります
57.
光の遅さに文句が言える エンジニアになろう
58.
ご静聴ありがとうございました
59.
We are hiring!
Download now