Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rubyで作るネット回線の自動速度測定ツール / Automatic network band...
Search
Ryo Nakano
November 30, 2019
Technology
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyで作るネット回線の自動速度測定ツール / Automatic network bandwidth measurement tool built with Ruby
Ryo Nakano
November 30, 2019
Other Decks in Technology
See All in Technology
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
600
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
160
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
440
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
150
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.8k
自治体AIコンタクトセンター、何をどこに任せる?~Amazon Connect Customer +Amazon Bedrockの実践知~ / 20261107 Satoshi Torano
shift_evolve
PRO
1
130
TSKaigi Sendai 2026 - tsgo時代のTypeScript Playgroundはどう動くか
teamlab
PRO
0
120
属人化したISMS運用をGitHubとAIで仕組み化した1年間の記録
sioncojp
4
2.1k
田んぼの見回りをIoTで減らしたい!水位監視から電池駆動カメラまでの試行錯誤
itosoft
1
120
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
320
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
280
Sizing, Benchmarking and Performance Tuning Apache Flink Clusters
rmetzger
0
150
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Visualization
eitanlees
153
17k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
590
Fireside Chat
paigeccino
43
4.1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Design in an AI World
tapps
1
390
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
680
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
530
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
430
Transcript
"VUPNBUJDOFUXPSLCBOEXJEUI NFBTVSFNFOUUPPMCVJMUXJUI3VCZ தཾ גࣜձࣾγφϓε ࣛࣇౡ3VCZձٞ
TFMG w தཾ ͳ͔ͷΓΐ͏ w !SZPOLO w 3VCZ͖ͳωοτϫʔΫΤϯδχΞ w
גࣜձࣾγφϓε w ۀ w ࣛࣇౡͷΠϯλʔωοταʔϏε ϓϩόΠμ *41
ޫͷ͞ ඵ N ඵສLN ඵؒʹٿΛप
ඵສLN ඵؒʹٿΛप ޫͷ͞ ඵ N ޫຊʹ͍
*41ͷར༻ऀ͔Βͷ
ޫ͕͍Ͱ͢
None
ޫϑΝΠόΛ༻͍ͨΠϯ λʔωοτଓαʔϏεʹ ͓͍ͯɺ̋̋ͱͷ௨৴Ͱر ͍ͯ͠Δ௨৴͕ग़ͳ ͍ͯ͘Ͱ͢
*41ʹͱͬͯ࠷େͳ͜ͱ
௨৴
Ͱɺͦͷ௨৴Λ ਖ਼֬ʹѲ͢Δͷ͍͠
Πϯλʔωοτ 1$ "1 ϧʔλ ϧʔλ ϧʔλ ϧʔλ ϧʔλ ϧʔλ εΠον
αʔό αʔό αʔό *41 $41 2ϘτϧωοΫͷՄೳੑͲ͜
Πϯλʔωοτ 1$ "1 ϧʔλ ϧʔλ ϧʔλ ϧʔλ ϧʔλ ϧʔλ εΠον
αʔό αʔό αʔό *41 $41 "શ෦
௨৴ΛѲ͢Δͷ͕͍͠ཧ༝ w ڥ͕·ͪ·ͪ w 1$ͷεϖοΫɺ04ɺ༗ઢWTແઢɺॴɺڑ w ࠶ݱੑʹ͍͠ w ͖͔͚ͬͬͨ͞Ͳɺࠓ͔ͬͨΓɾɾɾ w
ϘτϧωοΫՕॴ͕͔Βͳ͍ w 1$ɺ*41ɺΠϯλʔωοτɺαʔό
ͦΕͰɺ͋ΔఔѲ͍ͨ͠
࣮ݱ͍ͨ͜͠ͱ ✕ਖ਼֬ʹଌఆ ̋ར༻ऀʹ͍ۙڥͰଌఆ
࣮ݱ͍ͨ͜͠ͱ ✕ਖ਼֬ʹଌఆ ̋ར༻ऀʹ͍ۙঢ়گΛѲ
࣮ݱ͍ͨ͜͠ͱ ✕ਖ਼֬ʹଌఆ ̋ར༻ऀʹ͍ۙঢ়گΛѲ ⊗ IUUQTXXXTQFFEUFTUOFU
None
ࣗಈͰճઢ ΛଌΔπʔϧΛ࡞Δ 3VCZͰ
ࣗಈͰճઢ ΛଌΔπʔϧΛ࡞Δ 3VCZͰ
ڥ Πϯλʔωοτ γφϓε ଞࣾ ଌఆ Ϛγϯ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ճઢ" ճઢ#
ճઢ$ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό "NB[PO $MPVE8BUDI
"NB[PO $MPVE8BUDI ڥ Πϯλʔωοτ γφϓε ଞࣾ ଌఆ Ϛγϯ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό
ճઢ" ճઢ# ճઢ$ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ճઢ"Λͬͯγφϓεܦ༝Ͱɺࣗಈબ͞Εͨ TQFFEUFTUOFUͷͲ͔ͬͷαʔόͰଌఆ
"NB[PO $MPVE8BUDI ڥ Πϯλʔωοτ γφϓε ଞࣾ ଌఆ Ϛγϯ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό
ճઢ" ճઢ# ճઢ$ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ճઢ#Λͬͯγφϓεܦ༝Ͱɺࣗಈબ͞Εͨ TQFFEUFTUOFUͷͲ͔ͬͷαʔόͰଌఆ
ڥ Πϯλʔωοτ γφϓε ଞࣾ ଌఆ Ϛγϯ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ճઢ" ճઢ#
ճઢ$ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ճઢ$Λͬͯଞࣾܦ༝Ͱɺࣗಈબ͞Εͨ TQFFEUFTUOFUͷͲ͔ͬͷαʔόͰଌఆ "NB[PO $MPVE8BUDI
ڥ Πϯλʔωοτ γφϓε ଞࣾ ଌఆ Ϛγϯ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ճઢ" ճઢ#
ճઢ$ TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό TQFFEUFTUOFUͷ Ͳ͔ͬͷαʔό ଌఆͷ݁ՌΛ$MPVE8BUDIʹૹ৴ "NB[PO $MPVE8BUDI
Ͳ͏ͬͯ௨৴Λܭࢉ͢Δ start_time = Time.now size = do_something elapsed_time = Time.now
- start_time bits_per_seconds = size / elapsed_time ௨৴ CQT సૹྔ CJUT సૹ࣌ؒ TFDPOET
Ͳ͏ͬͯ௨৴Λܭࢉ͢Δ start_time = Time.now size = do_something elapsed_time = Time.now
- start_time bits_per_seconds = size / elapsed_time ௨৴ CQT సૹྔ CJUT సૹ࣌ؒ TFDPOET ͜͜ͷॲཧ͕࣌ؒ ͍͜ͱ͕େࣄ
Ͳ͏ͬͯ௨৴Λܭࢉ͢Δ start_time = Time.now size = do_something elapsed_time = Time.now
- start_time bits_per_seconds = size / elapsed_time ௨৴ CQT సૹྔ CJUT సૹ࣌ؒ TFDPOET ͜͜ͷॲཧ͕࣌ؒ ͍͜ͱ͕େࣄ ͰɺͲͷ)551 ϥΠϒϥϦΛ͔ͭ͏ ͖
͔Βͳ͍ΜͩͬͨΒ ϕϯνϚʔΫ
ϕϯνϚʔΫڥ w .BD#PPL 3FUJOB JODI w NBD04$BUBMJOB
w 3VCZQSFWJFX w ରͷ)551ϥΠϒϥϦ w OFUIUUQ PQFOVSJ QFSTJTUFOU@IUUQ FYDPO DVSC UZQIPFVT IUUQBSUZ w ൺֱ༰ w .#ͷϑΝΠϧͷ ճμϯϩʔυʹ͔͔Δ࣌ؒ
ϕϯνϚʔΫ݁Ռ user system total real net/http 14.414228 28.327082 42.741310 (
77.200037) open-uri 15.608099 42.493993 58.102092 (115.153421) persistent_http 16.415132 19.942348 36.357480 (204.295474) excon 25.617961 35.878296 61.496257 ( 92.624589) curb 7.818012 10.445636 18.263648 ( 31.450269) typhoeus 16.514283 13.611175 30.125458 ( 43.214387) httparty 16.402169 27.036087 43.438256 ( 73.769290)
ϕϯνϚʔΫ݁Ռ ࣌ؒ ඵ OFUIUUQ PQFOVSJ
QFSTJTUFOU@IUUQ FYDPO DVSC UZQIPFVT IUUQBSUZ VTFS TZTUFN
ϕϯνϚʔΫ݁Ռ ࣌ؒ ඵ OFUIUUQ PQFOVSJ
QFSTJTUFOU@IUUQ FYDPO DVSC UZQIPFVT IUUQBSUZ VTFS TZTUFN ࠾༻
͍ͭͰʹ(FNԽ
None
ॲཧ֓ཁ module SpeedtestNet def self.run config = SpeedtestNet::Config.fetch server =
SpeedtestNet::Server.best_server download_results = SpeedtestNet::Download.measure(server) upload_results = SpeedtestNet::Upload.measure(server) SpeedtestNet::Config.clear_cache SpeedtestNet::Result.new(config.client, server, download_results, upload_results) end end
ॲཧ֓ཁ module SpeedtestNet def self.run config = SpeedtestNet::Config.fetch server =
SpeedtestNet::Server.best_server download_results = SpeedtestNet::Download.measure(server) upload_results = SpeedtestNet::Upload.measure(server) SpeedtestNet::Config.clear_cache SpeedtestNet::Result.new(config.client, server, download_results, upload_results) end end TQFFEUFTUOFUΑΓɺࣗ ͷύϒϦοΫ*1ɺͦͷ *1ͷҢɾܦΛऔಘ
ॲཧ֓ཁ module SpeedtestNet def self.run config = SpeedtestNet::Config.fetch server =
SpeedtestNet::Server.best_server download_results = SpeedtestNet::Download.measure(server) upload_results = SpeedtestNet::Upload.measure(server) SpeedtestNet::Config.clear_cache SpeedtestNet::Result.new(config.client, server, download_results, upload_results) end end TQFFEUFTUOFUΑΓɺଌఆ αʔόҰཡΛड৴ͯ͠ɺۙ͘ ͯԆͷগͳ͍αʔόΛબఆ
ॲཧ֓ཁ module SpeedtestNet def self.run config = SpeedtestNet::Config.fetch server =
SpeedtestNet::Server.best_server download_results = SpeedtestNet::Download.measure(server) upload_results = SpeedtestNet::Upload.measure(server) SpeedtestNet::Config.clear_cache SpeedtestNet::Result.new(config.client, server, download_results, upload_results) end end μϯϩʔυ ͷଌఆ
ॲཧ֓ཁ module SpeedtestNet def self.run config = SpeedtestNet::Config.fetch server =
SpeedtestNet::Server.best_server download_results = SpeedtestNet::Download.measure(server) upload_results = SpeedtestNet::Upload.measure(server) SpeedtestNet::Config.clear_cache SpeedtestNet::Result.new(config.client, server, download_results, upload_results) end end Ξοϓϩʔυ ͷଌఆ
ॲཧ֓ཁ module SpeedtestNet def self.run config = SpeedtestNet::Config.fetch server =
SpeedtestNet::Server.best_server download_results = SpeedtestNet::Download.measure(server) upload_results = SpeedtestNet::Upload.measure(server) SpeedtestNet::Config.clear_cache SpeedtestNet::Result.new(config.client, server, download_results, upload_results) end end ଌఆ݁ՌΛฦ͢
͍ํ irb(main):001:0> require 'speedtest_net' irb(main):002:0> result = SpeedtestNet.run irb(main):003:0> result.download
=> 511615528.0 irb(main):004:0> result.pretty_download => "511.62 Mbps” irb(main):005:0> result.upload => 647852285.33333334 irb(main):006:0> result.pretty_upload => "647.85 Mbps"
݁Ռ "NB[PO$MPVE8BUDI
None
·ͱΊ
·ͱΊ wޫࢥ͍ͬͯΔΑΓ͘ͳ͍ Β͍͠ w௨৴ΛѲ͢Δͷ͍͠ wϕϯνϚʔΫେࣄ w3VCZָ͍͠