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
EN
Uploaded by
Hironobu Saitoh
PPTX, PDF
9,463 views
PHPで並列処理する ライブラリを作った
【2015/01/26】第86回 PHP勉強会で発表したスライドです。
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
7
/ 24
8
/ 24
9
/ 24
10
/ 24
11
/ 24
12
/ 24
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
21
/ 24
22
/ 24
23
/ 24
24
/ 24
More Related Content
PDF
go_router が隠してくれるもの
by
cch-robo
PPTX
マイクロサービスにおける 結果整合性との戦い
by
ota42y
PDF
例外設計における大罪
by
Takuto Wada
PDF
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
go_router が隠してくれるもの
by
cch-robo
マイクロサービスにおける 結果整合性との戦い
by
ota42y
例外設計における大罪
by
Takuto Wada
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
できる!並列・並行プログラミング
by
Preferred Networks
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
What's hot
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
by
Yoshifumi Kawai
PPT
Glibc malloc internal
by
Motohiro KOSAKI
PDF
PHPでマルチスレッド
by
karky7
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
基本に戻ってInnoDBの話をします
by
yoku0825
PDF
いつやるの?Git入門 v1.1.0
by
Masakazu Matsushita
PDF
Twitterのsnowflakeについて
by
moai kids
PPTX
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
by
DeNA
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
PDF
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
by
Masahito Zembutsu
PDF
[Container Runtime Meetup] runc & User Namespaces
by
Akihiro Suda
PDF
がんばれ PHP Fiber
by
infinite_loop
PDF
Test Yourself - テストを書くと何がどう変わるか
by
Takuto Wada
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PPTX
TextMeshProを使った絵文字対応について
by
ssuserfefa74
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PDF
Ethernetの受信処理
by
Takuya ASADA
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
PPTX
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
by
Fixstars Corporation
PPTX
Spring 5に備えるリアクティブプログラミング入門
by
Takuya Iwatsuka
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
by
Yoshifumi Kawai
Glibc malloc internal
by
Motohiro KOSAKI
PHPでマルチスレッド
by
karky7
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
基本に戻ってInnoDBの話をします
by
yoku0825
いつやるの?Git入門 v1.1.0
by
Masakazu Matsushita
Twitterのsnowflakeについて
by
moai kids
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
by
DeNA
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
by
Masahito Zembutsu
[Container Runtime Meetup] runc & User Namespaces
by
Akihiro Suda
がんばれ PHP Fiber
by
infinite_loop
Test Yourself - テストを書くと何がどう変わるか
by
Takuto Wada
オンラインゲームの仕組みと工夫
by
Yuta Imai
TextMeshProを使った絵文字対応について
by
ssuserfefa74
Docker Compose 徹底解説
by
Masahito Zembutsu
Ethernetの受信処理
by
Takuya ASADA
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
by
Fixstars Corporation
Spring 5に備えるリアクティブプログラミング入門
by
Takuya Iwatsuka
Viewers also liked
PPTX
CakePHP を使ってよかったこと
by
Wataru Terada
PDF
はじめてLaravelさわった 第86回php勉強会
by
Osamu Kawasaki
PDF
php開発で使うタスクランナー gulp
by
Yuuki Takezawa
PDF
Hack tutorial
by
Wakana Yoshizawa
PDF
入門!Software Defined Network
by
Etsuji Nakai
PDF
Okinawa Open Days 2015 Handson - Ansible
by
Hideki Saito
KEY
最強のPHP統合開発環境 PHPStorm
by
晃 遠山
PDF
Your first dive into systemd!
by
Etsuji Nakai
PDF
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
by
Etsuji Nakai
PDF
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
by
Etsuji Nakai
PDF
キレイなコードの書き方
by
Takuya Kitamura
PDF
Mac OS X のパッケージ管理紹介/比較
by
Tomohiko Himura
PDF
HTTP/2の現状とこれから
by
shigeki_ohtsu
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
PDF
Python 機械学習プログラミング データ分析演習編
by
Etsuji Nakai
PDF
C#の強み、或いは何故PHPから乗り換えるのか
by
Yoshifumi Kawai
PDF
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
by
Etsuji Nakai
PDF
Android lint-srp-practice
by
cch-robo
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
What is tested by pre-launch (security) reports?
by
ak_shio_555
CakePHP を使ってよかったこと
by
Wataru Terada
はじめてLaravelさわった 第86回php勉強会
by
Osamu Kawasaki
php開発で使うタスクランナー gulp
by
Yuuki Takezawa
Hack tutorial
by
Wakana Yoshizawa
入門!Software Defined Network
by
Etsuji Nakai
Okinawa Open Days 2015 Handson - Ansible
by
Hideki Saito
最強のPHP統合開発環境 PHPStorm
by
晃 遠山
Your first dive into systemd!
by
Etsuji Nakai
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
by
Etsuji Nakai
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
by
Etsuji Nakai
キレイなコードの書き方
by
Takuya Kitamura
Mac OS X のパッケージ管理紹介/比較
by
Tomohiko Himura
HTTP/2の現状とこれから
by
shigeki_ohtsu
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
Python 機械学習プログラミング データ分析演習編
by
Etsuji Nakai
C#の強み、或いは何故PHPから乗り換えるのか
by
Yoshifumi Kawai
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
by
Etsuji Nakai
Android lint-srp-practice
by
cch-robo
Linux女子部 systemd徹底入門
by
Etsuji Nakai
What is tested by pre-launch (security) reports?
by
ak_shio_555
Similar to PHPで並列処理する ライブラリを作った
PDF
PHPにおけるI/O多重化とyield
by
Yahoo!デベロッパーネットワーク
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
by
Hideo Kashioka
PDF
マルチタスクって奥が深い #mishimapm
by
鉄次 尾形
PDF
Php非同期の技法
by
Shogo Kawahara
PDF
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
by
Hideo Kashioka
PPTX
Dentoo.LT12 並列処理・MPIの第一歩 20151025
by
HPCシステムズ株式会社
PDF
Modern PHP Programming @ PFI Seminar
by
Sotaro Karasawa
PDF
PHP で実行中のスクリプトの動作を下から覗き見る
by
shinjiigarashi
PDF
PHP & Queue
by
sasezaki
PDF
PHPカンファレンス2016 初心者セッション
by
Hideo Kashioka
PDF
PHPの今とこれから 2013
by
Rui Hirokawa
PDF
PHP language update 201211
by
Moriyoshi Koizumi
PDF
PHPの今とこれから2021
by
Rui Hirokawa
PPTX
PHP基礎勉強会
by
Yuji Otani
PDF
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
by
Yoshio Hanawa
KEY
Perl 非同期プログラミング
by
lestrrat
PPTX
サーバーを作ろう (毎週のハンズオン勉強会の資料)
by
ひとし あまの
PHPにおけるI/O多重化とyield
by
Yahoo!デベロッパーネットワーク
PHPCON_TOKYO_2022_Bigginer.pptx
by
Hideo Kashioka
マルチタスクって奥が深い #mishimapm
by
鉄次 尾形
Php非同期の技法
by
Shogo Kawahara
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
by
Hideo Kashioka
Dentoo.LT12 並列処理・MPIの第一歩 20151025
by
HPCシステムズ株式会社
Modern PHP Programming @ PFI Seminar
by
Sotaro Karasawa
PHP で実行中のスクリプトの動作を下から覗き見る
by
shinjiigarashi
PHP & Queue
by
sasezaki
PHPカンファレンス2016 初心者セッション
by
Hideo Kashioka
PHPの今とこれから 2013
by
Rui Hirokawa
PHP language update 201211
by
Moriyoshi Koizumi
PHPの今とこれから2021
by
Rui Hirokawa
PHP基礎勉強会
by
Yuji Otani
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
by
Yoshio Hanawa
Perl 非同期プログラミング
by
lestrrat
サーバーを作ろう (毎週のハンズオン勉強会の資料)
by
ひとし あまの
More from Hironobu Saitoh
PPTX
パブリッククラウドConoHaを使ってOpenStack APIを理解する
by
Hironobu Saitoh
PPTX
出張このべん in 大阪
by
Hironobu Saitoh
PPTX
このべん第5回 ConoHaでWordPressのお勉強!
by
Hironobu Saitoh
PPTX
ConoHaにおける オブジェクトストレージの 利用動向
by
Hironobu Saitoh
PPTX
ConoHa VPSの コマンドラインツールを作った
by
Hironobu Saitoh
PPTX
フロントエンドの人にも知ってもらいたいサーバーの話
by
Hironobu Saitoh
PPTX
クラウドのようなVPS 「ConoHa」 を使ってみよう +おまけ
by
Hironobu Saitoh
PPTX
クラウドのようなVPS 「ConoHa」 を使ってみよう。
by
Hironobu Saitoh
PPTX
OpenSSHの認証に証明書を使う
by
Hironobu Saitoh
PPTX
Unityのバックエンドに ConoHaオブジェクトストレージ を使う
by
Hironobu Saitoh
PPTX
オブジェクトストレージを使ってイメージビューアを作ってみる
by
Hironobu Saitoh
PDF
Conoha VPSについて
by
Hironobu Saitoh
PPTX
20140903groonga発表資料
by
Hironobu Saitoh
PPTX
レガシーPHPアプリ(10年もの)を運用している話
by
Hironobu Saitoh
パブリッククラウドConoHaを使ってOpenStack APIを理解する
by
Hironobu Saitoh
出張このべん in 大阪
by
Hironobu Saitoh
このべん第5回 ConoHaでWordPressのお勉強!
by
Hironobu Saitoh
ConoHaにおける オブジェクトストレージの 利用動向
by
Hironobu Saitoh
ConoHa VPSの コマンドラインツールを作った
by
Hironobu Saitoh
フロントエンドの人にも知ってもらいたいサーバーの話
by
Hironobu Saitoh
クラウドのようなVPS 「ConoHa」 を使ってみよう +おまけ
by
Hironobu Saitoh
クラウドのようなVPS 「ConoHa」 を使ってみよう。
by
Hironobu Saitoh
OpenSSHの認証に証明書を使う
by
Hironobu Saitoh
Unityのバックエンドに ConoHaオブジェクトストレージ を使う
by
Hironobu Saitoh
オブジェクトストレージを使ってイメージビューアを作ってみる
by
Hironobu Saitoh
Conoha VPSについて
by
Hironobu Saitoh
20140903groonga発表資料
by
Hironobu Saitoh
レガシーPHPアプリ(10年もの)を運用している話
by
Hironobu Saitoh
PHPで並列処理する ライブラリを作った
1.
PHPで並列処理する ライブラリを作った ひろのぶ(@hironobu_s) 【2015/01/26】第86回 PHP勉強会
2.
自己紹介 • ひろのぶ(@hironobu_s) • GMOインターネット株式会社 テクニカルエバンジェリスト •
自社サービスの企画、開発、インフラ運用をしてました • 現在はConoHa (https://www.conoha.jp)を担当
3.
ConoHa https://www.conoha.jp/conoha/
4.
PHPで並列処理
5.
いろいろある • バックグラウンドで実行する (php -f
background.php 2>&1 /dev/null & のような) • curl_multi系の関数を使う • fork()する • スレッドを使う(pthreadsとか)
6.
いろいろある • バックグラウンドで実行する (php -f
background.php 2>&1 /dev/null & のような) • curl_multi系の関数を使う • fork()する • スレッドを使う(pthreadsとか) ←今回はこれを使う
7.
pcntl - プロセス制御関数
8.
プロセス制御関数 • pcntl_で始まる関数群 • Unix形式のプロセスを扱 える •
Windows不可
9.
親プロセスと子プロセス • プロセスとはプログラムの実行単位(phpコマンドなど) • プロセスは自分自身の複製を作れる •
作った側「親プロセス」、作られた側「子プロセス」 • PHPではpcntl_fork()を使う
10.
ParallelFor • 拙作のライブラリです • 配列の対するループ処理を並列化できる •
https://github.com/hironobu-s/parallel-for
11.
例 <?php $data = []; for($i
= 0; $i < 50; $i++) { $data[] = "data $i"; } $result = []; foreach($data as $data) { usleep(100000); // 100msのウエイト $result[] = $data . " processed."; } var_dump($result);
12.
ちょうど5秒かかった
13.
ParallelFor を使う<?php require_once 'parallel-for/src/ParallelFor.php'; //
処理内容 $exec = function($datas) { $result = []; foreach($datas as $data) { usleep(100000); // 100msのウエイト $result[] = $data . " processed."; } return $result; }; // テストデータの準備 $data = []; for($i = 0; $i < 10; $i++) { $data[] = "data $i"; } // 実行 $p = new ParallelFor(); $p->setNumChilds(8); $data = $p->run($data, $exec);
14.
0.78秒で終わった
15.
\ はやい/
16.
何が起きてるの? • 配列の要素数が50、一つ処理するのに100msというプロ グラム • 一つずつ処理すると
100ms * 50 = 5,000ms = 5sec • ParallelForは並列処理する(今回は並列数8で実行) • 5000ms / 8 = 625ms だけど今回は782msだった
17.
図で見てみる (イメージです。実際はちょっと違います)
19.
array_slice()
23.
制約 • Windowsでは動かない(pcntlが使えない) • mod_phpでは動かない(同上) •
リソース型を扱えない(Segfaultする)
24.
おわり • Github https://github.com/hironobu-s/parallel-for • Qiita http://qiita.com/hironobu_s/items/b72cb9d876e467c59697 ご清聴ありがとうございました
Download