Suche senden
Hochladen
樽家昌也 (日本Rubyの会)
•
0 gefällt mir
•
776 views
toRuby
Folgen
「分散unit/test」
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 10
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)
Hideki Yamane
Shibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼう
gyuque
20090410 Gree Opentech Main
20090410 Gree Opentech Main
Hideki Yamane
No.23-D (1)
No.23-D (1)
Rob Bohrer
Calculus (1)
Calculus (1)
Saira Kanwal
Re genome1
Re genome1
Mark Hilbert
Dilly Duck
Dilly Duck
Asniem CA
ONLINE FLORIST JAIPUR TONK ROAD
ONLINE FLORIST JAIPUR TONK ROAD
Marry Desuza
Empfohlen
20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)
Hideki Yamane
Shibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼう
gyuque
20090410 Gree Opentech Main
20090410 Gree Opentech Main
Hideki Yamane
No.23-D (1)
No.23-D (1)
Rob Bohrer
Calculus (1)
Calculus (1)
Saira Kanwal
Re genome1
Re genome1
Mark Hilbert
Dilly Duck
Dilly Duck
Asniem CA
ONLINE FLORIST JAIPUR TONK ROAD
ONLINE FLORIST JAIPUR TONK ROAD
Marry Desuza
Page bhasin massala chakki
Page bhasin massala chakki
Pawan0786
Noip 2016-day2
Noip 2016-day2
德源 何
سیرت مصطفٰی صلّی اللہ تعالٰی علیہ وسلّم_Seerat e Mustafa (saw)
سیرت مصطفٰی صلّی اللہ تعالٰی علیہ وسلّم_Seerat e Mustafa (saw)
Ahmed@3604
What is a team and what is a group
What is a team and what is a group
Thurein Naywinaung
QM-076-六標準差管理方法的解題邏輯與策略
QM-076-六標準差管理方法的解題邏輯與策略
handbook
Nitrozen disorder-book
Nitrozen disorder-book
ZahidIslam12
Linux Commands
Linux Commands
iwata
Transformada de Fourier - Señales en forma trigonometrica y complejas
Transformada de Fourier - Señales en forma trigonometrica y complejas
Fernando Marcos Marcos
Portada word
Portada word
faby0311
Decisão ação MP - Serviços essenciais
Decisão ação MP - Serviços essenciais
SomMaior
Lectoescritura: copiar palabras letra a letra
Lectoescritura: copiar palabras letra a letra
AprenentABA
Intellectual property lawyer: The Protector of your ideas
Intellectual property lawyer: The Protector of your ideas
smithdon000000
Super keyword
Super keyword
vishal choudhary
Limit fungsi (soal+pembahasan) -by syifadhila
Limit fungsi (soal+pembahasan) -by syifadhila
Syifa Dhila
Amba分析
Amba分析
Jack Chen
Accounting-0137 Chapter 1 Lecture 2
Accounting-0137 Chapter 1 Lecture 2
Cambriannews
Libro de ejercicios de word
Libro de ejercicios de word
noechu51013
Universidad autonoma de baja california
Universidad autonoma de baja california
Williamgutierrez172
Qwertyuipoihgfdcvb
Qwertyuipoihgfdcvb
Mhein Abudala
Roshettat book 1 word format
Roshettat book 1 word format
Pharmacia1 .com
Creating Digital Stories
Creating Digital Stories
Jeremy Williams
Shadow art
Shadow art
ale last
Weitere ähnliche Inhalte
Was ist angesagt?
Page bhasin massala chakki
Page bhasin massala chakki
Pawan0786
Noip 2016-day2
Noip 2016-day2
德源 何
سیرت مصطفٰی صلّی اللہ تعالٰی علیہ وسلّم_Seerat e Mustafa (saw)
سیرت مصطفٰی صلّی اللہ تعالٰی علیہ وسلّم_Seerat e Mustafa (saw)
Ahmed@3604
What is a team and what is a group
What is a team and what is a group
Thurein Naywinaung
QM-076-六標準差管理方法的解題邏輯與策略
QM-076-六標準差管理方法的解題邏輯與策略
handbook
Nitrozen disorder-book
Nitrozen disorder-book
ZahidIslam12
Linux Commands
Linux Commands
iwata
Transformada de Fourier - Señales en forma trigonometrica y complejas
Transformada de Fourier - Señales en forma trigonometrica y complejas
Fernando Marcos Marcos
Portada word
Portada word
faby0311
Decisão ação MP - Serviços essenciais
Decisão ação MP - Serviços essenciais
SomMaior
Lectoescritura: copiar palabras letra a letra
Lectoescritura: copiar palabras letra a letra
AprenentABA
Intellectual property lawyer: The Protector of your ideas
Intellectual property lawyer: The Protector of your ideas
smithdon000000
Super keyword
Super keyword
vishal choudhary
Limit fungsi (soal+pembahasan) -by syifadhila
Limit fungsi (soal+pembahasan) -by syifadhila
Syifa Dhila
Amba分析
Amba分析
Jack Chen
Accounting-0137 Chapter 1 Lecture 2
Accounting-0137 Chapter 1 Lecture 2
Cambriannews
Libro de ejercicios de word
Libro de ejercicios de word
noechu51013
Universidad autonoma de baja california
Universidad autonoma de baja california
Williamgutierrez172
Qwertyuipoihgfdcvb
Qwertyuipoihgfdcvb
Mhein Abudala
Roshettat book 1 word format
Roshettat book 1 word format
Pharmacia1 .com
Was ist angesagt?
(20)
Page bhasin massala chakki
Page bhasin massala chakki
Noip 2016-day2
Noip 2016-day2
سیرت مصطفٰی صلّی اللہ تعالٰی علیہ وسلّم_Seerat e Mustafa (saw)
سیرت مصطفٰی صلّی اللہ تعالٰی علیہ وسلّم_Seerat e Mustafa (saw)
What is a team and what is a group
What is a team and what is a group
QM-076-六標準差管理方法的解題邏輯與策略
QM-076-六標準差管理方法的解題邏輯與策略
Nitrozen disorder-book
Nitrozen disorder-book
Linux Commands
Linux Commands
Transformada de Fourier - Señales en forma trigonometrica y complejas
Transformada de Fourier - Señales en forma trigonometrica y complejas
Portada word
Portada word
Decisão ação MP - Serviços essenciais
Decisão ação MP - Serviços essenciais
Lectoescritura: copiar palabras letra a letra
Lectoescritura: copiar palabras letra a letra
Intellectual property lawyer: The Protector of your ideas
Intellectual property lawyer: The Protector of your ideas
Super keyword
Super keyword
Limit fungsi (soal+pembahasan) -by syifadhila
Limit fungsi (soal+pembahasan) -by syifadhila
Amba分析
Amba分析
Accounting-0137 Chapter 1 Lecture 2
Accounting-0137 Chapter 1 Lecture 2
Libro de ejercicios de word
Libro de ejercicios de word
Universidad autonoma de baja california
Universidad autonoma de baja california
Qwertyuipoihgfdcvb
Qwertyuipoihgfdcvb
Roshettat book 1 word format
Roshettat book 1 word format
Andere mochten auch
Creating Digital Stories
Creating Digital Stories
Jeremy Williams
Shadow art
Shadow art
ale last
McDougal Presentation
McDougal Presentation
mmcdougal
School as Sustainable Enterprise
School as Sustainable Enterprise
Jeremy Williams
Nov2008 board meeting_presentation_draft_11192008_1045
Nov2008 board meeting_presentation_draft_11192008_1045
California Wildlife Conservation Board
Cateva detalii (haioase) despre Sf. Petru si Pavel
Cateva detalii (haioase) despre Sf. Petru si Pavel
Carla Alman
Rw Newsletter24
Rw Newsletter24
sturmstories
Sensen CI P2
Sensen CI P2
manaswishukla
Czech
Czech
Eva Rekkedal
Voicethread project 2010
Voicethread project 2010
Rural Hall School - Distance Learning
Update on GeoReadiness (Cole)
Update on GeoReadiness (Cole)
California Wildlife Conservation Board
Cci Ppt 091510
Cci Ppt 091510
Charles Anthony Stough
Cuemlenin Oe Eleri
Cuemlenin Oe Eleri
yardimt
Adlar
Adlar
yardimt
Technology innovation in legal industry by inszoom
Technology innovation in legal industry by inszoom
Sneh Sharma
Developing a Personal Learning Network (And Using it for Professional Purposes)
Developing a Personal Learning Network (And Using it for Professional Purposes)
Jeremy Williams
Sesiones Online Xabier Basogain
Sesiones Online Xabier Basogain
MoodleMoot Euskadi
Lehen Bigarren Teresa Santos
Lehen Bigarren Teresa Santos
MoodleMoot Euskadi
Cum iubesc zodiile
Cum iubesc zodiile
Carla Alman
Un nou concurs!
Un nou concurs!
Carla Alman
Andere mochten auch
(20)
Creating Digital Stories
Creating Digital Stories
Shadow art
Shadow art
McDougal Presentation
McDougal Presentation
School as Sustainable Enterprise
School as Sustainable Enterprise
Nov2008 board meeting_presentation_draft_11192008_1045
Nov2008 board meeting_presentation_draft_11192008_1045
Cateva detalii (haioase) despre Sf. Petru si Pavel
Cateva detalii (haioase) despre Sf. Petru si Pavel
Rw Newsletter24
Rw Newsletter24
Sensen CI P2
Sensen CI P2
Czech
Czech
Voicethread project 2010
Voicethread project 2010
Update on GeoReadiness (Cole)
Update on GeoReadiness (Cole)
Cci Ppt 091510
Cci Ppt 091510
Cuemlenin Oe Eleri
Cuemlenin Oe Eleri
Adlar
Adlar
Technology innovation in legal industry by inszoom
Technology innovation in legal industry by inszoom
Developing a Personal Learning Network (And Using it for Professional Purposes)
Developing a Personal Learning Network (And Using it for Professional Purposes)
Sesiones Online Xabier Basogain
Sesiones Online Xabier Basogain
Lehen Bigarren Teresa Santos
Lehen Bigarren Teresa Santos
Cum iubesc zodiile
Cum iubesc zodiile
Un nou concurs!
Un nou concurs!
Ähnlich wie 樽家昌也 (日本Rubyの会)
GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門
bose999
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
devsumi2009
Reloaded
Reloaded
Shunsaku Kudo
事件模型探究
事件模型探究
ematrix
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
terada
4200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.0
wayneliao
Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsu
sesejun
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク Doma
Toshihiro Nakamura
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
gyuque
ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理
Shinya Miyazaki
Iir 08 ver.1.0
Iir 08 ver.1.0
takashi shiraki
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
Yuya Yamaki
dRuby
dRuby
toyoshi
使いこなそうGUC
使いこなそうGUC
Akio Ishida
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
devsumi2009
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Yusuke Kawasaki
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
Akio Ishida
サーマル・デバイスモデリングの現状
サーマル・デバイスモデリングの現状
Tsuyoshi Horigome
Ruby Postgres
Ruby Postgres
Akio Ishida
20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編
mochiko AsTech
Ähnlich wie 樽家昌也 (日本Rubyの会)
(20)
GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
Reloaded
Reloaded
事件模型探究
事件模型探究
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
4200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.0
Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsu
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク Doma
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理
Iir 08 ver.1.0
Iir 08 ver.1.0
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
dRuby
dRuby
使いこなそうGUC
使いこなそうGUC
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
サーマル・デバイスモデリングの現状
サーマル・デバイスモデリングの現状
Ruby Postgres
Ruby Postgres
20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編
Mehr von toRuby
坪井創吾さん / "王子様本のRuby1.9対応を調べる"
坪井創吾さん / "王子様本のRuby1.9対応を調べる"
toRuby
Tリック・サンダース / "去年の社会人一年生のRuby研修"
Tリック・サンダース / "去年の社会人一年生のRuby研修"
toRuby
「雑談コミュニケーションのススメ(インド人編)」佐藤 基裕
「雑談コミュニケーションのススメ(インド人編)」佐藤 基裕
toRuby
「儲かるWiki」江渡浩一郎
「儲かるWiki」江渡浩一郎
toRuby
「Rubyで描くビジネスモデル」池澤 一廣
「Rubyで描くビジネスモデル」池澤 一廣
toRuby
大川祐介
大川祐介
toRuby
stuboi
stuboi
toRuby
Mehr von toRuby
(7)
坪井創吾さん / "王子様本のRuby1.9対応を調べる"
坪井創吾さん / "王子様本のRuby1.9対応を調べる"
Tリック・サンダース / "去年の社会人一年生のRuby研修"
Tリック・サンダース / "去年の社会人一年生のRuby研修"
「雑談コミュニケーションのススメ(インド人編)」佐藤 基裕
「雑談コミュニケーションのススメ(インド人編)」佐藤 基裕
「儲かるWiki」江渡浩一郎
「儲かるWiki」江渡浩一郎
「Rubyで描くビジネスモデル」池澤 一廣
「Rubyで描くビジネスモデル」池澤 一廣
大川祐介
大川祐介
stuboi
stuboi
樽家昌也 (日本Rubyの会)
1.
分散test/unit
が出来るといいな 樽家 昌也 (日本Rubyの会)
2.
リグレッションテストの憂鬱 終盤になればあまり問題はない 問題は序中盤 ソースコードをガシガシ リファインしたり機能追加する バグもガシガシ追加してる
テスト重要! って、言うまでもないですよねー でもテストケースを追加するたびに 時間がどんどん掛るようになってくる・・・・
3.
あるテストの例 (13 tests) >rake
test Finished in 227.140242 seconds. ちょっと時間掛かりすぎじゃないか?今後が心配。 top - 17:18:13 up 7:23, 3 users, load average: 0.08, 0.86, 0.58 Tasks: 173 total, 1 running, 171 sleeping, 0 stopped, 1 zombie Cpu0 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 1 0% C 1 : 1.0%us, 0.3%sy, 0 0% i 98 7%id 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 0 3% 0.0%ni, 98.7%id, 0 0% 0 0%hi 0 0% i 0 0% Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Cpu3 : 0.3%us, 0.3%sy, 0.0%ni, 99.0%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2580612k total, 1030520k used, 1550092k free, 224804k buffers Swap: 2031608k total, 120k used, 2031488k free, 376652k cached ・・・・ !! CPUが4つもあるのに1つしか使ってないよ ・・・・!! CPUが (略 top - 17:18:20 up 46 days, 9:00, 13 users, load average: 0.18, 0.45, 0.51 Tasks: 353 total, 1 running, 348 sleeping, 4 stopped, 0 zombie Cpu0 : 1.0%us, 0.0%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.3%st Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu6 : 12.0%us, 7.3%sy, 0.0%ni, 80.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st なんとかせんといかん Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu9 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu10 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu11 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu12 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu13 : 0.0%us, 0.7%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu15 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 16400384k total, 7751860k used, 8648524k free, 257472k buffers Swap: 8191992k total, 220k used, 8191772k free, 4637040k cached
4.
並列実行test環境ってないの?
Java界にはTestNGってのがあるらしい ! そういえばMakeには-jオプションあるけれど ! Rakeにはないなぁ そもそも並列といっても色々単位が。どれがいいの? ! 複数スレッドで ! 複数プロセスで ! 複数計算機で ! でもすくなくともどれか一つは欲しい ! 今は複数計算機使わなくてもいいや(個人的理由) !
5.
使ってるtest/unitを見てみた
実行開始している所から並列化させればいいんじゃないだろう ! か? どこで開始してるの? そんな時のcaller関数 test本体に入れてみよう module Test どうやらここらしい。 module Unit 早速手を入れる class TestSuite def run(result, &progress_block) run(result &progress block) yield(STARTED, name) 単純にThread使ってみる @tests.each do |test| test.run(result, &progress_block) カレントディレクトリが end yield(FINISHED, name) グローバルスコープだった! end そもそもThreadは時分割で 複数CPU使わないよと突っ込みが入る。
6.
じゃあマルチプロセスで プロセス別れるとプロセス間通信が必要 特に他所のプロセスの変数いじるんだからdRubyがよそう
なんとなく完成 def run(result, &progress_block) drbserv = DRb.start_service(nil,result) d_result = DRbObject.new_with_uri(drbserv.uri) >rake test yield(STARTED, name) Finished in 227.140242 seconds. pids = @tests.map do |test| >rake test P= fork { Finished in 80.753652 seconds. test.run(d_result, &progress_block) exit } え? end resultがthread safeじゃない? pids.each {|i| Process.waitpid(i) } 並列化数が制御できてない? drbserv.stop_service() yield(FINISHED, name) end そういうこともあります。
7.
分散testに向けて
真剣に考えると色々解決しないといけない課題は多い ! ターゲットの選定 ! 分散のモデル化 ! 並列実行されるThreadの導入推進? ! グリッド? ! 分散test/unit っていっても 本質的な全然解決できてない
8.
添付ライブラリで遊ぼう 分散test/unit
が出来るといいな 樽家 昌也 (日本Rubyの会)
9.
添付ライブラリ弄りは楽しい
広く使われるものなので固い。たまにもうちょっと融通を ! 利かせてほしくなったりする。 Code Reading が自然と出来るし、 ! 弄ってこそ見えてくる事がある。深く読み込める? コードの必然性とか、工夫とか ! Rubyは非常にいじりやすい。 C実装部分以外オープン ! 後付けで変更する部分を定義しなおすだけ。 Binary2.0的な事もできたり。(idからポインタを計算) まだの方は是非一度弄ってみてください
10.
分散
これからの時代はメニーコアだ 分散だ ! Rubyをメニーコア時代のデファクトスクリプト言語に ! Regional RubyKaigi ! 栃木は分散の聖地? ! 都心からの適度な距離、dRubyな土地だし ! 分散の聖地? ! 分散の聖地はやっぱり分散して存在しないと。 ! もっと分散しましょう
Jetzt herunterladen