Enviar búsqueda
Cargar
worker_threadsを使った実装の勘所
•
Descargar como PPTX, PDF
•
0 recomendaciones
•
970 vistas
yo_waka
Seguir
Gotanda.js#12のLT資料です
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 12
Descargar ahora
Recomendados
Bargam Elios 2700, bdl air 18
Bargam Elios 2700, bdl air 18
PartCatalogs Net
Settlement worker performance appraisal
Settlement worker performance appraisal
brandonparker771
Corrective Action Plan With Law reference
Corrective Action Plan With Law reference
Md.Morshedoll Alam
HGW-Greenworld- Peru-Plan de-compensacion-2020
HGW-Greenworld- Peru-Plan de-compensacion-2020
Victor M. Sanchez
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
Recomendados
Bargam Elios 2700, bdl air 18
Bargam Elios 2700, bdl air 18
PartCatalogs Net
Settlement worker performance appraisal
Settlement worker performance appraisal
brandonparker771
Corrective Action Plan With Law reference
Corrective Action Plan With Law reference
Md.Morshedoll Alam
HGW-Greenworld- Peru-Plan de-compensacion-2020
HGW-Greenworld- Peru-Plan de-compensacion-2020
Victor M. Sanchez
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
Nodeを稼働させる
Nodeを稼働させる
kumatch kumatch
Node js 入門
Node js 入門
Satoshi Takami
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
NGN2012B 発表資料
NGN2012B 発表資料
Kenji Nagase
たのしいNode.js
たのしいNode.js
ishiki-takai
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
Node.js Hands-On
Node.js Hands-On
Akinari Tsugo
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
ビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
最近作ったもの
最近作ったもの
onozaty
Hello, Node.js
Hello, Node.js
Shin Sekaryo
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Munenori Sugimura
Nodeにしましょう
Nodeにしましょう
Yuzo Hebishima
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
Kazuhisa Hara
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
schoowebcampus
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
Mongodb World 2014
Mongodb World 2014
Yoshihiro Iwanaga
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Más contenido relacionado
Similar a worker_threadsを使った実装の勘所
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
Nodeを稼働させる
Nodeを稼働させる
kumatch kumatch
Node js 入門
Node js 入門
Satoshi Takami
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
NGN2012B 発表資料
NGN2012B 発表資料
Kenji Nagase
たのしいNode.js
たのしいNode.js
ishiki-takai
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
Node.js Hands-On
Node.js Hands-On
Akinari Tsugo
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
ビルド職人の朝は早い
ビルド職人の朝は早い
Masashi MATSUI
最近作ったもの
最近作ったもの
onozaty
Hello, Node.js
Hello, Node.js
Shin Sekaryo
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Munenori Sugimura
Nodeにしましょう
Nodeにしましょう
Yuzo Hebishima
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
Kazuhisa Hara
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
schoowebcampus
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
Mongodb World 2014
Mongodb World 2014
Yoshihiro Iwanaga
Similar a worker_threadsを使った実装の勘所
(20)
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Nodeを稼働させる
Nodeを稼働させる
Node js 入門
Node js 入門
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
NGN2012B 発表資料
NGN2012B 発表資料
たのしいNode.js
たのしいNode.js
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
Node.js Hands-On
Node.js Hands-On
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
ビルド職人の朝は早い
ビルド職人の朝は早い
最近作ったもの
最近作ったもの
Hello, Node.js
Hello, Node.js
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Nodeにしましょう
Nodeにしましょう
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Mongodb World 2014
Mongodb World 2014
Último
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Último
(12)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
worker_threadsを使った実装の勘所
1.
worker_threadsを使っ た実装の勘所 2019/07/26 Gotanda.js #12
2.
• 五反田の会計ソフトの会社で開発本部長をしています • かつてはフロントエンドを書くなどしていました •
最近は子供にスマートフォン触らせていたらポケモンGo のポケモンたちをオーキド博士に送られ全てアメになっ ていたため、今さら艦これを始めるなどしています
3.
worker_threads • Node.jsでマルチスレッド処理を可能にするモジュール • イベントループでもなく、マルチプロセスでもなく、 libuvを使った本物のスレッド! •
Node.js v10.5 でexperimentalな機能として導入 • Node.js v11.7.0 で正式に取り込まれた
4.
worker_threads • これは・・WebWorker・・?ってくらい似てます • Workerのコンストラクタに共有メモリに載せるデータを 指定できる
5.
worker_threads • マルチスレッドなのでI/Oがきつい箇所よりCPU負荷がき つい箇所で使いたい • これはどう考えてもトランスパイル •
ということで試してみた
6.
worker-thread-loader • https://github.com/waka/worker-thread-loader • sampleつけてるので軽く動かしたりできます •
名前の通りwebpackのloaderをworker-threadsで並列処理 • 大量のJSファイルをマルチスレッドでトランスパイルして高速化した い
7.
モチベーション • 会社のプロダクトのJSがあまりにもデカい • node_modules除いて4023ファイル •
node_modules除いて453880行 • webpackのエントリポイントが157 • webpackの設定は結構チューニングしてきたけどビルドが遅 い(= 2分) • あまりworker-threadsを使ったプログラミング事例がなかった のでやってみたくなった • microjobとかthread-poolといったnpmモジュールはあったり はする
8.
webpack loaderとは • 本題ではないので、 手前味噌ですが、 こういう記事でloader の話を書いてたりする ので省きます
9.
メインフロー • メインプロセスとスレッドはonとpostMessageで通信 • スレッドにトランスパイルをお願い •
トランスパイルされたコードをwebpackに戻す
10.
スレッドライフサイク ル • スレッドを使いまわせる ような状態遷移が必要 • すべて終わったかをチェック しないといけないのでDead ステータスを持たせる •
結構プリミティブな実装を していかないといけない
11.
わかったこと • スレッド(Worker)の生成コストが大きい • 同時起動できるスレッド数は結構少ない •
4コアのThinkPad X1 carbonだと10スレッド以上だと サチる • この辺は処理によっても変わるので調整できるよ うにするのが大事 • 作ったスレッドを使いまわせるような設計大事 • スレッドプール • スレッド内で再走可能に
12.
わかったこと2 • 果たしてworker-threadsによる並列トランスパイルでビルドは早くなるのか • 答え「かなり大規模以上なら使える」 •
6000ファイルのトランスパイル • 2minutes => 1.2minutesくらいに • テスト書いて実際に入れてみたいと思っている • 処理を行う環境によって最適なスレッド数を探す必要はある • 開発環境/CI環境 • ビルドの遅さ > スレッド生成処理の遅さであれば検討 • ex) 最近ビルド遅いしHappyPack使おうかな • ex) 最近ビルド遅いし独自ローダー作ろうかな • 同じような話だとテスト実行とかもワンチャンある(かもしれない)
Descargar ahora