Submit Search
Upload
スローテスト刑事 (デカ)
•
1 like
•
7,508 views
Koichi ITO
Follow
第74回 Ruby関西 勉強会 (https://rubykansai.doorkeeper.jp/events/49364)
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 69
Recommended
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Uehara Junji
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
第十回 渋谷JavaのLTスライドです。
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
implement Brainf*ck compiler using Indy with BytecodeDSL.
開発時の探し物を楽にする習慣作り
開発時の探し物を楽にする習慣作り
Koichi ITO
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! (https://nishinipporirb.doorkeeper.jp/events/42587)
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
Yu Yamada
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! 山田 雄(株式会社リクルートライフスタイル)
Recommended
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Uehara Junji
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
第十回 渋谷JavaのLTスライドです。
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
implement Brainf*ck compiler using Indy with BytecodeDSL.
開発時の探し物を楽にする習慣作り
開発時の探し物を楽にする習慣作り
Koichi ITO
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! (https://nishinipporirb.doorkeeper.jp/events/42587)
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
Yu Yamada
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! 山田 雄(株式会社リクルートライフスタイル)
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
ぎんざRuby会議01 スポンサーLT (https://ginzarb.github.io/kaigi01/)
アプリがパッチにまみれたら
アプリがパッチにまみれたら
Koichi ITO
TokyuRuby会議11 (https://tokyurubykaigi.github.io/tokyu11/)
Stairway to The Pragmatic Rails Programmer
Stairway to The Pragmatic Rails Programmer
Koichi ITO
Rails Developers Meetup #3 (https://rails-developers-meetup.connpass.com/event/60765/)
最軽の開発手法 dX 改
最軽の開発手法 dX 改
Koichi ITO
ESM LT #2
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Koichi ITO
Ruby Business Users Conference 2017 (http://www.rubybusiness-conf.org/)
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Koichi ITO
表参道.rb #19 https://omotesandorb.connpass.com/event/48967
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
Koichi ITO
RubyWorld Conference 2016 (http://2016.rubyworld-conf.org/ja/) のスポンサープレゼンテーション
俺の開発日誌
俺の開発日誌
Koichi ITO
Ginza.rb 第40回 (https://ginzarb.doorkeeper.jp/events/52895)
ghq gem-src and more
ghq gem-src and more
Koichi ITO
esm LT での発表スライド
RuboCopとXPコーディング規約
RuboCopとXPコーディング規約
Koichi ITO
XP祭り 2016のライトニングトークス資料 (http://xpjug.com/xp2016)
俺たちの新人教育!!
俺たちの新人教育!!
Koichi ITO
XP祭り 2016 (http://xpjug.com/xp2016)
Gate of Agile Web Development
Gate of Agile Web Development
Koichi ITO
Agile Japan 2016 長崎サテライト with NaITE (http://nagasaki-it-engineers.connpass.com/event/32873)
RubyKaigi 2015 の Drinkup を支える技術
RubyKaigi 2015 の Drinkup を支える技術
Koichi ITO
TokyuRuby会議10 (http://regional.rubykaigi.org/tokyu10/)
Motivationware
Motivationware
Koichi ITO
とちぎテストの会議04 (http://d.hatena.ne.jp/tochigitestnokaigi/20160423)
達人プログラマーへの道
達人プログラマーへの道
Koichi ITO
表参道.rb#10 (http://omotesandorb.connpass.com/event/29102/)
Let's get ready for next Ruby
Let's get ready for next Ruby
Koichi ITO
表参道.rb #9
職と人
職と人
Koichi ITO
勤務先の社内発表資料
Agile Software Development with Edge Ruby
Agile Software Development with Edge Ruby
Koichi ITO
Yamama.rb #0
Safe navigation operator in Ruby
Safe navigation operator in Ruby
Koichi ITO
表参道.rb #6 (http://omotesandorb.connpass.com/event/21811/) obj&.foo になるかも? https://bugs.ruby-lang.org/issues/11537#note-42
プロの無職についての考察:序
プロの無職についての考察:序
Koichi ITO
オトナとRuby (https://toruby.doorkeeper.jp/events/30722)
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
ビジュアルプログラミングIoTLT17資料です。
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
More Related Content
More from Koichi ITO
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
ぎんざRuby会議01 スポンサーLT (https://ginzarb.github.io/kaigi01/)
アプリがパッチにまみれたら
アプリがパッチにまみれたら
Koichi ITO
TokyuRuby会議11 (https://tokyurubykaigi.github.io/tokyu11/)
Stairway to The Pragmatic Rails Programmer
Stairway to The Pragmatic Rails Programmer
Koichi ITO
Rails Developers Meetup #3 (https://rails-developers-meetup.connpass.com/event/60765/)
最軽の開発手法 dX 改
最軽の開発手法 dX 改
Koichi ITO
ESM LT #2
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Koichi ITO
Ruby Business Users Conference 2017 (http://www.rubybusiness-conf.org/)
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Koichi ITO
表参道.rb #19 https://omotesandorb.connpass.com/event/48967
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
Koichi ITO
RubyWorld Conference 2016 (http://2016.rubyworld-conf.org/ja/) のスポンサープレゼンテーション
俺の開発日誌
俺の開発日誌
Koichi ITO
Ginza.rb 第40回 (https://ginzarb.doorkeeper.jp/events/52895)
ghq gem-src and more
ghq gem-src and more
Koichi ITO
esm LT での発表スライド
RuboCopとXPコーディング規約
RuboCopとXPコーディング規約
Koichi ITO
XP祭り 2016のライトニングトークス資料 (http://xpjug.com/xp2016)
俺たちの新人教育!!
俺たちの新人教育!!
Koichi ITO
XP祭り 2016 (http://xpjug.com/xp2016)
Gate of Agile Web Development
Gate of Agile Web Development
Koichi ITO
Agile Japan 2016 長崎サテライト with NaITE (http://nagasaki-it-engineers.connpass.com/event/32873)
RubyKaigi 2015 の Drinkup を支える技術
RubyKaigi 2015 の Drinkup を支える技術
Koichi ITO
TokyuRuby会議10 (http://regional.rubykaigi.org/tokyu10/)
Motivationware
Motivationware
Koichi ITO
とちぎテストの会議04 (http://d.hatena.ne.jp/tochigitestnokaigi/20160423)
達人プログラマーへの道
達人プログラマーへの道
Koichi ITO
表参道.rb#10 (http://omotesandorb.connpass.com/event/29102/)
Let's get ready for next Ruby
Let's get ready for next Ruby
Koichi ITO
表参道.rb #9
職と人
職と人
Koichi ITO
勤務先の社内発表資料
Agile Software Development with Edge Ruby
Agile Software Development with Edge Ruby
Koichi ITO
Yamama.rb #0
Safe navigation operator in Ruby
Safe navigation operator in Ruby
Koichi ITO
表参道.rb #6 (http://omotesandorb.connpass.com/event/21811/) obj&.foo になるかも? https://bugs.ruby-lang.org/issues/11537#note-42
プロの無職についての考察:序
プロの無職についての考察:序
Koichi ITO
オトナとRuby (https://toruby.doorkeeper.jp/events/30722)
More from Koichi ITO
(20)
Bundler 2 の胎動
Bundler 2 の胎動
アプリがパッチにまみれたら
アプリがパッチにまみれたら
Stairway to The Pragmatic Rails Programmer
Stairway to The Pragmatic Rails Programmer
最軽の開発手法 dX 改
最軽の開発手法 dX 改
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
俺の開発日誌
俺の開発日誌
ghq gem-src and more
ghq gem-src and more
RuboCopとXPコーディング規約
RuboCopとXPコーディング規約
俺たちの新人教育!!
俺たちの新人教育!!
Gate of Agile Web Development
Gate of Agile Web Development
RubyKaigi 2015 の Drinkup を支える技術
RubyKaigi 2015 の Drinkup を支える技術
Motivationware
Motivationware
達人プログラマーへの道
達人プログラマーへの道
Let's get ready for next Ruby
Let's get ready for next Ruby
職と人
職と人
Agile Software Development with Edge Ruby
Agile Software Development with Edge Ruby
Safe navigation operator in Ruby
Safe navigation operator in Ruby
プロの無職についての考察:序
プロの無職についての考察:序
Recently uploaded
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
ビジュアルプログラミングIoTLT17資料です。
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
K Kinzal
Solana Developer Hub Online #6 https://lu.ma/evx8jtpi
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
Yuuitirou528 default
深海探査を行うロボットについてざっくりと初心者向け?に解説したおはなし会の資料です。 https://x.com/INHI_UV2B/status/1796712335765369263
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Masatsugu Matsushita
下記の会の感想 https://kichijojipm.connpass.com/event/315276/presentation/
Recently uploaded
(7)
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
スローテスト刑事 (デカ)
1.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 スローテスト刑事 (デカ) 第74回�Ruby関⻄�勉強会 京都⼥⼦大学�C508 2016-09-11�(Sun) 伊藤�浩⼀�(@koic) (株)永和システムマネジメント
2.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 わたし
3.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 わたし (株)永和システムマネジメントで 働く会社員。Rubyとかメタルと か好きです。 https://github.com/koic✓ https://twitter.com/koic✓ https://koic.hatenablog.com✓
4.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 �
5.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 御礼
6.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 �
7.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 今⽇の話 Railsアプリケーションのスロ ーテスト対策について ✓ XP�で伝えられる�Testing�と� Continuous�Integration�への 現実的課題点について考察 ✓ 現場での実践とポイント オンプレJenkins✓ ✓
8.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 まとめ
9.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 Thanks�(デカ部屋) @1syo✓ @onk✓ @yattom✓
10.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 フルビル ド何分で すか?
11.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 とあるアンケート 10分以内に抑えるようにして います
12.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 10分と いう目標
13.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 目標と現 実の差を 知る
14.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 ある現実 だいたい3,795�examplesほど✓ ある時点で�rake�stats�した Code�LOC:�12796✓ Test�LOC:�23518✓ Code�to�Test�Ratio:�1:1.8✓ ✓ 素朴にテストを書いて実⾏とか だと1時間越え ✓
15.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 1時間越え 24つのPull�Requestが出たら 1⽇の処理量を越える ✓ というか翌朝出社しても終わら ない ✓ ないわー✓
16.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 86,400
17.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 時間の重み 1⽇は86,400秒✓ 例えば60秒かかるスローテス トが30つあると、 ✓ ⼀⽇に処理できるCIの上限は 48つ以下 チームは⼀⽇何回のコミットをして ますか? ✓ ✓
18.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 ⾦を払いま すか?労⼒ を払います か?
19.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 最速での事件解決法 札束で殴る✓ 潤沢な⾦と権⼒✓ お⾦がんばれ✓
20.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 労⼒を⾦で解決する 問題解決の基礎戦略のひとつ✓ 潤沢な⾦と権限のあるプロジェ クトは動きやすい あまりそういったプロジェクトばか りでないのが現実 ✓ 今⽇の話は制約の中でどうしていく か ✓ ✓
21.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 スローテスト刑事�(デカ)�の ⽇常 テストの並列化と個別のチュー ンナップを頑張る ✓ まるで靴底をすり減らした聞き 込みのように地道な作業 デカだからね✓ ✓
22.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 TL;DR
23.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 コアでスケー ルアウトしメ モリでスケー ルアップする
24.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 私のオススメ 倍速レベルで速くなる並列化を 初⼿にすると良い 投資対効果が⾼い✓ ✓ DBのデータファイルのメモリ 化でディスクIO削減 RDBMS自体のパフォーマンスが上 がるわけではないので、20%の速度 向上など⼀定⽐率で頭打ちはある ✓ ✓
25.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 Topics 1.�Parallel✓ 2.�DB✓ 3.�Tips✓
26.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 1.Parallel
27.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 Gemfileに以下を書いて bundle�install�(1/4) parallel̲tests�/�test-queueとい った並列化ライブラリがある。 ����������������������������������������� ここはparallel̲testsを例にする。
28.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 各種設定を並列対応�(2/4) データベースを並列分用意して、 config/database.ymlを対応する ����� ��������������������������������������������������������� RDBMSに並列実⾏分のスキーマ� (あるいはDB)�を用意する ✓
29.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 並列分のスキーマ作成�(3/4) rake�db:migrate�の実⾏より� rake�db:schema:load�の⽅が速い ので意図がないならオススメ ��������������������������� ������������������������������������������������
30.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 テストの並列実⾏�(4/4) --suffixでテスト対象を絞り込んで ⾒てみても良い。 ������������������������������������������ ���������������������������������������������������
31.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果 4コア:�約1時間のテストが約 15分になった。 ✓ 2コア:�約1時間のテストが約 30分になった。 ✓
32.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 共有リソースが容疑者 基本的に個別のテストに⼿を⼊ れず効果を得られる ✓ Isolated�Testの原則からそれ ぞれが影響しないはず ✓ Shared�resourcesに気をつ ける 逆にいうとだいたいここくらい✓ ✓
33.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 並列化まとめ tmm1/test-queue,�grosser/ parallel̲testsなどで並列化 ✓ 並列化するためデータベースや 全⽂検索エンジンなどのリソー スも並列可能にする ✓ コアの数でほぼ頭打ちになるの でハイスペックのマシンが良い ✓
34.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果が⾼い ので最初に やると良い
35.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 2.�DB
36.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 データファイルのtmpfs搭載 RDBMSによるが2割減などが ⾒込めたりするらしい ✓ ⼀⽅でDisk�IO減は思いのほか 効いていない ✓ というかこの間、Vagrantのパ ラメータやらtmpfs化と合わせ てしておくREDOログの設定し くっててMac�MiniのCI死んだ ✓
37.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 Vagrantメモリ割当の変 問題.�この設定で�vagrant�reload� してテストを流しました�(配点2点) �������������������������������������� �������������������������������������������������������� ��������������������������������������������������������������� ������������������������������������������������������ ������������������������������������������������������ ���
38.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 まだ⽣傷が 癒えていな いので割愛
39.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 データベースのクリーニング を整理する スローテストの原因は、だいた いデータベースがネック CI�実⾏もアプリケーションでの実 ⾏もボトルネックは同じ ✓ ✓ amatsuda/ database̲rewinderというプ ロダクトもあるが、ここでは DatabaseCleanerのお話 ✓
40.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 DatabaseCleaner.strategy
41.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 spec̲helper.rb あるいはrails̲helper.rbに以下が あれば⾼速化の狙い目。 ��������������������������������� ���������������������������������� ������������������������������������������������������������� ������ ������������������������������������������� ����� ���
42.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 DatabaseCleaner.strate gyはできるだけ transactionに任せる データベースのデータ挿⼊と取得 で異なるスレッドが現れる JavaScriptのテスト以外は truncationではなく、同⼀スレッ ドで扱えるtransactionにする。
43.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 容疑者探し example.metadata�が⼿掛かり。 ��������������������������� ����������������������������������� ������� 容疑者の絞り込みまで出来るとあ とはやるだけなので割りと楽。
44.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 やること @javascriptを必要な場所に移す ������������ �������������� ����������������������������� ��������� �������������� �������������������������� ��������� ����������������������������� ���������
45.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�1�BEFORE ����������������������������������������������������������� �����������������������
46.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�1�AFTER ����������������������������������������������������������� �����������������������
47.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�2�BEFORE ����������������������������������������������������������� ����������������������
48.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�2�AFTER ���������������������������������������������������������� ����������������������
49.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�3�BEFORE ����������������������������������������������������������� �����������������������
50.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�3�AFTER ����������������������������������������������������������� �����������������������
51.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�4�BEFORE ����������������������������������������������������������� ����������������������
52.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 効果�4�AFTER ���������������������������������������������������������� ����������������������
53.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 全体効果 約40分のテストが35分になっ た。 9%ほど削減✓ ✓
54.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 あとは地道に細かいチューニ ング 投資対効果が⾼いテストからチ ューニングしていく ✓
55.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 3.Tips
56.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 プロファイリング 推測するな、計測せよ�(--profile) �������������������������������� ������ ������������������������������ ����� ������������������������������������������������������������������������������������������ ����� ������������������������������������������������������������������������������������������ ����� ������������������������������������������������������������������������������������������ ���� オリコンチャート的な。
57.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 sleepを取り締まる grep�sleep�.�|�wc�-l�で⾒つか った件数以上の待ち時間が発⽣ スローの原因場所は⾒つけやすい✓ ✓ JavaScriptの関わるE2Eテス トでの遭遇率⾼い ✓ 1秒もsleepするならDBに状態 を問い合わせた⽅が速い ✓
58.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 DRY テストの重複を消す✓ コピペによる迷宮⼊り✓ コードを書いた時点でないと⾒ つけることが現実的には困難? Code�Climate的な静的解析で⼿掛 かりを⾒つけたりできる? ✓ 知⾒を知りたい✓ ✓
59.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 断捨離 使われていないテスト�(と呼び 出される不要な)�コードを捨て る ✓ ⾜し算より引き算の⽅が難しい✓ コードを捨てることができて⼀ ⼈前 ✓
60.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 最適化 before(:all),�before(:each),� aggregate̲failures�あたりの 最適化 ✓ 毎回の初期化が必要かどうかは ⼀考の余地有り ✓ 最近は�1�example(it,specify)� で�1�テストケースよりも速度 重視に思考が変わってきた ✓
61.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 できるだけインメモリ 不要な�AR�オブジェクト作ら ない�(factory�で関連作らず� nil�にしておく) ✓ DB�にアクセスさせない� (FactoryGirl.create�->�build) ✓
62.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 system�呼び出さない 他のテストで担保している遅い 外部コマンド�(ImageMagick)� をスタブ化するなど ✓
63.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 無駄な処理 サムネイル作らない✓
64.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 付録
65.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 対象絞り込み 変更と関係のあるテストだけ実 ⾏するという選択肢 ✓ タグ(rspec�--tag)で対象のテ ストを絞る ただし全テストを⾒たいCIの前段ま で ✓ ✓
66.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 ci�skip rails/railsはじめ常套⼿段✓ コメント修正といったレビュー をパスすれば良いだけのものは テストしない CI�の設定✓ ✓ ci�skip�/�CI�SKIP�/�skip�ci�/� SKIP�CI�いずれでも受⼊れるよ うにしておくと良い ✓
67.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 To�be�continued... スローテスト刑事�(デカ)�の捜 査は続く ✓
68.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 �
69.
スローテスト刑事�(デカ) Powered�by�Rabbit�2.1.8 Dying�Message 札束で殴る✓ 潤沢な⾦と権⼒✓ お⾦がんばれ✓