Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hiraku Nakano
36,553 views
Composer並列化プラグイン #phpblt
composerのzipダウンロードを並列化するプラグインを作りました。
Software
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
More Related Content
PDF
composerの遅さをまじめに考える #phpstudy
by
Hiraku Nakano
PDF
Security Advisories Checker on Travis/Circle CI
by
Ryo Shibayama
PDF
composer-scriptsについて
by
Hiraku Nakano
KEY
Composer による依存管理 と Packagist によるライブラリの公開
by
Shogo Kawahara
PDF
PSR-3 Logger Interfaceの紹介
by
Hiraku Nakano
PDF
ICSをビルドしてみた
by
kinneko
PDF
Laravel5.1 Release
by
Yuuki Takezawa
PDF
いまさらComposer
by
Mika Kane
composerの遅さをまじめに考える #phpstudy
by
Hiraku Nakano
Security Advisories Checker on Travis/Circle CI
by
Ryo Shibayama
composer-scriptsについて
by
Hiraku Nakano
Composer による依存管理 と Packagist によるライブラリの公開
by
Shogo Kawahara
PSR-3 Logger Interfaceの紹介
by
Hiraku Nakano
ICSをビルドしてみた
by
kinneko
Laravel5.1 Release
by
Yuuki Takezawa
いまさらComposer
by
Mika Kane
What's hot
PDF
PHPデプロイツールの世界
by
Yuuki Takezawa
PPTX
今日から始めるLaravel
by
Masaru Matsuo
PDF
Laravel 5.1 LTSでサービスを作る
by
infinite_loop
PPTX
Laravelを使ってみた
by
Jaeseop Jeong
PDF
LaravelとMVCの先へ
by
Yuuki Takezawa
PDF
vimプラグインでよりよい(ry
by
soh335
PPTX
〜laravel で学ぶ MVC
by
mikakane
PDF
php開発で使うタスクランナー gulp
by
Yuuki Takezawa
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
by
Taiji INOUE
PPTX
最近のPerlバイナリマネージャー Perl 編
by
Tokuhiro Matsuno
PDF
Symfony勉強会#9 form
by
Yuichi Okada
PDF
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
by
7shi
PPTX
HLSについて知っていることを話します
by
Moriyoshi Koizumi
PPTX
UnofficialCookingの紹介とRedmine本家への貢献
by
Yuuki Nara
PPTX
Make
by
lnial
PDF
GitHubで見つかるFileMaker関連ソフトウェア
by
Atsushi Matsuo
PDF
Real World PHP in pixiv
by
Kenta USAMI
PDF
Rails解説セミナー: Railsのアップグレード編
by
Yohei Yasukawa
PDF
ライブストリーミングの基礎知識
by
kumaryu
PDF
Rails解説セミナー: リリースノート解説編
by
Yohei Yasukawa
PHPデプロイツールの世界
by
Yuuki Takezawa
今日から始めるLaravel
by
Masaru Matsuo
Laravel 5.1 LTSでサービスを作る
by
infinite_loop
Laravelを使ってみた
by
Jaeseop Jeong
LaravelとMVCの先へ
by
Yuuki Takezawa
vimプラグインでよりよい(ry
by
soh335
〜laravel で学ぶ MVC
by
mikakane
php開発で使うタスクランナー gulp
by
Yuuki Takezawa
PHP x AWS でスケーラブルなシステムをつくろう
by
Taiji INOUE
最近のPerlバイナリマネージャー Perl 編
by
Tokuhiro Matsuno
Symfony勉強会#9 form
by
Yuichi Okada
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
by
7shi
HLSについて知っていることを話します
by
Moriyoshi Koizumi
UnofficialCookingの紹介とRedmine本家への貢献
by
Yuuki Nara
Make
by
lnial
GitHubで見つかるFileMaker関連ソフトウェア
by
Atsushi Matsuo
Real World PHP in pixiv
by
Kenta USAMI
Rails解説セミナー: Railsのアップグレード編
by
Yohei Yasukawa
ライブストリーミングの基礎知識
by
kumaryu
Rails解説セミナー: リリースノート解説編
by
Yohei Yasukawa
More from Hiraku Nakano
PDF
Scrutinizer CIでPHPも静的解析 #phpstudy
by
Hiraku Nakano
PDF
JSON SchemaとPHP
by
Hiraku Nakano
PDF
こわくない同時実行制御
by
Hiraku Nakano
PPTX
pecl-AOPの紹介
by
Hiraku Nakano
PPTX
URLで遊ぼう
by
Hiraku Nakano
PPTX
Xml builderの紹介
by
Hiraku Nakano
Scrutinizer CIでPHPも静的解析 #phpstudy
by
Hiraku Nakano
JSON SchemaとPHP
by
Hiraku Nakano
こわくない同時実行制御
by
Hiraku Nakano
pecl-AOPの紹介
by
Hiraku Nakano
URLで遊ぼう
by
Hiraku Nakano
Xml builderの紹介
by
Hiraku Nakano
Composer並列化プラグイン #phpblt
1.
composer並列化 プラグイン @Hiraku
2.
自己紹介 • 中野 拓
(@Hiraku) • 口癖「composerが遅い」 packagistのミラー作った https://packagist.jp • 2015/12からメルカリで働いています。
3.
俺 俺
4.
使ってね!
5.
composerは どこが遅いのか?
6.
composer update で 実行される処理 1.
パッケージ情報取得 2. 依存関係の解析 3. zipダウンロード
7.
1. パッケージ情報取得が遅い • packagist.orgが日本から遠いことが原因 •
解決策: • ミラーを作る (https://packagist.jp ) 本家に許可取ったので合法になった • composer.lockをコミットしておき、 composer installだけ行う
8.
2. 依存解決が遅い • (実はそれほど遅くない) •
解決策: • PHPを速くする(PHP7、HHVMを使う) • 良いCPUを使う
9.
3. zipダウンロードが遅い • github.com
からzipをダウンロードする作業 • github.comが遠いのと、file_get_contentsが アホの子(コネクション毎回捨てる) • zipごとミラーするのは大変、良い解決策がな かった
10.
packagist遅い 依存解決 ダウンロードが 遅い composer update ミラーを参照する PHP7を使う
遅い composer.lock + composer install (処理スキップ) (処理スキップ) 遅い
11.
本体にパッチを当てるか… • curlを使えってP-Rは何個か出てる • https://github.com/composer/composer/issues/ 704 •
https://github.com/composer/composer/pull/3636 • https://github.com/composer/composer/pull/2696 • 後方互換性の担保でいつも頓挫する
12.
黒歴史
13.
composer本体改善の壁 • 通信周りの 機能が多い上、分割されていなくて再実装するしか ない •
proxy, github, gitlabの認証対応 • ダウンロード進 の表示 • ユーザー名パスワードを入力させてリトライ • degradedMode (IPv4強制?) • これで互換性保つのは確かに面倒くさい
14.
と思ってたらこんな話が
15.
composerプラグインで curl化できるらしい…
16.
プラグインなら本体に マージされなくても 試してもらえる 実績も積める
17.
どうせなら 並列ダウンロードも できるんじゃね?
18.
(できた)
19.
hirak/prestissimo
21.
インストール簡単 • composer global
require hirak/prestissimo って打つと組み込まれる • composer global remove hirak/prestissimo って打つとアンインストールできる • 有効になってればcomposer update, composer installなどで勝手に効力を発揮する
22.
prestissimoとは • composerプラグイン。globalインストールすることで以下の機能を付与する • curl_multiでの並列zipダウンロード。並列数はカスタマイズ可能 プラグイン側で先に並列ダウンロードしてキャッシュを暖める •
GitHub API制限緩和(api.github.comを極力叩かない) • Keep-Alive有効化(HTTPSでも遅くならないよ) • 互換性担保、速くなること以外はcomposerの動作に影響を与えない • 「超速く演奏しろ」の意味でプレスティッシモと命名
23.
デモ
24.
人柱募集 • 認証の再実装部分が不安 • 使ってバグ出ししてくれ!! •
プラグインで実績積んで、安定性が認められ たら本体にマージを提案する計画です • https://github.com/hirak/prestissimo
25.
参考文献 • http://qiita.com/ngyuki/items/ 03f9c6ce0f0db18ace94 • https://github.com/ngyuki/composer-curl- plugin •
https://getcomposer.org/doc/articles/ plugins.md#event-handler
Download