Enviar pesquisa
Carregar
worker_threadsを使った実装の勘所
•
Transferir como PPTX, PDF
•
0 gostou
•
970 visualizações
yo_waka
Seguir
Gotanda.js#12のLT資料です
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 12
Baixar agora
Recomendados
Ormとの付き合い方
Ormとの付き合い方
豊明 尾古
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
kwatch
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
Zshでデキるプロンプト
Zshでデキるプロンプト
Maruyama Tetsutaro
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Yuji Otani
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
whywaita
Re: ゼロから始める監視設計
Re: ゼロから始める監視設計
Masahito Zembutsu
Recomendados
Ormとの付き合い方
Ormとの付き合い方
豊明 尾古
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
kwatch
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
Zshでデキるプロンプト
Zshでデキるプロンプト
Maruyama Tetsutaro
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Yuji Otani
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
whywaita
Re: ゼロから始める監視設計
Re: ゼロから始める監視設計
Masahito Zembutsu
サーバーレスWebアプリケーションを作ろう~AWSと比べてみる~
サーバーレスWebアプリケーションを作ろう~AWSと比べてみる~
拓将 平林
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Yoichi Kawasaki
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
GitLab CI/CD パイプライン
GitLab CI/CD パイプライン
Tetsurou Yano
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
Narami Kiyokura
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
Hiromasa Oka
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Preferred Networks
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
Takafumi Sakakibara
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Kouhei Sutou
Confluence と SharePoint 何が違う?
Confluence と SharePoint 何が違う?
アトラシアン株式会社
はじめての自己組織化
はじめての自己組織化
Yoshinori Ueda
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
Python に行く前に Excel で学ぶデータ分析のいろは
Python に行く前に Excel で学ぶデータ分析のいろは
Daiyu Hatakeyama
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
Taiji Tsuchiya
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
OpenStack Swift紹介
OpenStack Swift紹介
Kota Tsuyuzaki
「情報」を「書く」ということ(仮) #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Kazuhito Miura
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Mais conteúdo relacionado
Mais procurados
サーバーレスWebアプリケーションを作ろう~AWSと比べてみる~
サーバーレスWebアプリケーションを作ろう~AWSと比べてみる~
拓将 平林
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Yoichi Kawasaki
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
GitLab CI/CD パイプライン
GitLab CI/CD パイプライン
Tetsurou Yano
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
Narami Kiyokura
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
Hiromasa Oka
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Preferred Networks
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
Takafumi Sakakibara
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Kouhei Sutou
Confluence と SharePoint 何が違う?
Confluence と SharePoint 何が違う?
アトラシアン株式会社
はじめての自己組織化
はじめての自己組織化
Yoshinori Ueda
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
Python に行く前に Excel で学ぶデータ分析のいろは
Python に行く前に Excel で学ぶデータ分析のいろは
Daiyu Hatakeyama
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
Taiji Tsuchiya
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
OpenStack Swift紹介
OpenStack Swift紹介
Kota Tsuyuzaki
「情報」を「書く」ということ(仮) #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Kazuhito Miura
Mais procurados
(20)
サーバーレスWebアプリケーションを作ろう~AWSと比べてみる~
サーバーレスWebアプリケーションを作ろう~AWSと比べてみる~
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
GitLab CI/CD パイプライン
GitLab CI/CD パイプライン
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Confluence と SharePoint 何が違う?
Confluence と SharePoint 何が違う?
はじめての自己組織化
はじめての自己組織化
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Python に行く前に Excel で学ぶデータ分析のいろは
Python に行く前に Excel で学ぶデータ分析のいろは
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
Vue.js で XSS
Vue.js で XSS
OpenStack Swift紹介
OpenStack Swift紹介
「情報」を「書く」ということ(仮) #RedmineJapan
「情報」を「書く」ということ(仮) #RedmineJapan
Semelhante a worker_threadsを使った実装の勘所
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
Semelhante a worker_threadsを使った実装の勘所
(20)
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Node.js で Web アプリ開発
Node.js で Web アプリ開発
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
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
Último
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Último
(11)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
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) 最近ビルド遅いし独自ローダー作ろうかな • 同じような話だとテスト実行とかもワンチャンある(かもしれない)
Baixar agora