SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
RubyKaigi2018
1
2
RubyKaigiとは
Rubyコミュニティ主催のRubyに関する年次イベント
複数の会議室やホールで複数のセッションが並行して行われる
2015年までは東京、来年は福岡
Date place
2016/09/08‑10 京都国際会館
2017/09/18‑20 広島国際会議場
2018/05/31‑02 仙台国際センター
2019/04/18‑20 福岡福岡国際会議場
3
セッション分類
コミッターは今こんなことをやっている
HighPerformance化(高速化,並列処理,マルチスレッド)
型推論
周辺(gem,irb,...)
こんなことやってみたぜ系
全く別の方法で高速化した
○○の歴史
その他
LT
RubyCommitersvstheWorld
TRICK(変態コード)
4
5
6
ことわざ:名は体を表す
いい名前付けしよう
googlablity(お金があればgoみたいなのでもいい)
毎年Rubyは死んでいる
May311030‑1130 7
May311130‑1300 8
requireの改善
Rubyの文字列はCの文字列を使ってる
require時に他のrequireのパターンを生成・キャッシュ
重複削除・キャッシュ
単純なRailsアプリでメモリ使用量4.2%改善
が、5年前に別の人がissueあげてくれてた。そっち取り込んだ
May311300‑1340 9
mxnet.rb(apachemxnetのrubybinding)とRedChainerの話
rubyだけで深層学習
tensorflowよりパフォーマンスが良いMay311350‑1430 10
初期のrubocopは正規表現でやってた
RipperはMRIのみサポートなのでparserにした
railsをcoreから分離予定、重い
拡張を描きやすいAPIを提供したい(今でも書けるけど)
May311440‑1520 11
1.8サポート辛い、安定バージョンとしてメンテは1バージョン
ruby2.6=>rubygems3,ruby2.7orruby3.0=>rubygems4
gem-codesearch rubygemsの全データを検索できる
all-ruby 全てのRubyでコードが実行できる(docker)
4では非互換の機能を入れたい
プログラミングに入門した人がgeminstallで悩まないように
May311550‑1630 12
C拡張内でmallocしてもrubyは解放してくれない=>自分でmark
RubyのHashをC拡張で描いてみたがパフォーマンス変わらない
Rubyアプデの恩恵に与かれないので速度のために書くのは良くない
外部ライブラリが必要な時にI/FをC拡張として書く<=正しい
May311640‑1720 13
May311730‑1830 14
May311730‑1830 15
130のライブラリをメンテしてる
色々機能追加してるよって話(gemとか)
REXML,Rabbit,GTK,test‑unit,i18n,commit‑email,etc
Jun.10940‑1040 16
GCはMajorとMinorがある(全てのObject/若いオブジェクト)
Objectが増えるほどGCに時間がかかる
gsub!等の破壊的処理はCPUとメモリの節約になる
環境変数でGCの挙動を制御できる(env_mem.gem使うと楽)
--with-jemalloc でbuildするとjemalloc版rubyが使える(10% )
Jun.11050‑1130 17
Lunch(Bento!)
Jun.11130‑1300 18
スタイル=>好み,Lint=>バグになりうるもの
レビューの指摘内容は他のプロジェクトでも起きうる=>cop化
railsのcopをrubocop側に持って行ったらrails界隈の人が現れ始めた
Jun.11300‑1340 19
MinRubyを作って改造していく
構文解析(Ripper)‑>AST‑>実行
MinRubyを拡張してRindaにevalを実装する
Rinda:LindaのRuby実装
Linda:並列プログラミング言語。他の言語上に拡張として実装
される
Jun.11350‑1430 20
steep(型チェック)の話。別ファイルに型定義を書いていく(.rbi)
steepコマンドで実行可能=>nilチェックNoMethodError吐いたり
scaffoldで雛形を作れる
既存のコードに適用できる(不明な型が多くなるが・・)
Tupple型やActiveRecord型とかは未対応
Jun.11440‑1520 21
Haconiwa:DSLで記述できるmRuby製コンテナ
将来はk8sがデファクトになるのでは=>コンテナ型アプリの出番
Jun.11550‑1630 22
Ruby以外の言語や別ファイルで型を書くのが要求されている
Rubyでは返り値に無頓着なメソッドが書かれがち(void必要)
Matzの要求仕様に一番近いのはsteep
Rubyだとtypeinterfaceは無理なのでtypeprofiler(suggestくらい)
動的な型推論の問題はかなり遅いこと
Jun.11640‑1720 23
EndlessRange: (1..) #=> 1~無限 (‑1が嫌だった)
yield_self => then (入れやがった)
* "HELLO".then{|s| s.upcase! } #=> nil
例外を投げなおしたときに元の例外のbacktraceを出せるように
「松本さん一回Rails使ってみればいいんですよ」(autoload)
obj.:method_name
while; else; end はどうか(python的に)(rescueあったら...?)
Jun.11730‑1830 24
Jun.11730‑1830 25
C拡張を含めMRI完全互換を目指している
立ち上がりは少し遅いが、起動すれば早い(Optcarrotで190FPS)
Rails対応はまだ
ASTにする時点でJavaObjectに、そのあとJVMに流し込む
最適化すごい [1,2].map{|e| e*3} #=> [3,6] のレベルにする
rbenvで試せるようになるJun.20940‑1040 26
ri コマンド知ってます?
ri コマンド<<<<<<<<<<Google
irb 実行時にtab補完でドキュメント出すようにしてみた
ruby2.6 から進化してるからinstall時の --no-document 外して
ね
Jun.21050‑1130 27
Lunch(Bento!)
Jun.21130‑1300 28
preview2でRuby2.0の2.03倍速い(optcarrot計測)
Railsで使うと遅くなるバグがある
JITの予測コンパイルに失敗するとオーバーヘッドで遅くなる
演算子オーバーライドされているとJITが狂って遅くなる
JITの実行キャンセルが多く発生していた #[] 多い
nil を返すだけのメソッドを定義するだけで遅くなる
いっぱいメソッドを定義すると爆裂に遅くなる
Jun.21300‑1340 29
色々自作してるって話(Mailer,FTP,テキストエディタ,...)
手元でもできるものをクラウド上にしたサービスが嫌い
モチベ,時間,スキルが必要
自分が使いたいものじゃないと続かない
簡単なものから始める
テストコードは書きすぎず、パパッと作る
Jun.21350‑1430 30
nginx+smalllightで画像のリサイズを行なっていたが色々やばい問
題があった
nginxconfigで色々やろうとしてて辛そうだった
H2Oでmrubyを使い、画像変換は別サーバーで行う設計に変えたJun.21440‑1520 31
CRubyのfloatingpointの改善
オブジェクトの内部表現小・処理の分岐少=>12%改善
RTLの更新=>RTLinsnにしたら17‑27%改善
Light‑weightJIT(MIRベースのJIT)
コードの速度はgcc版の70%だがコンパイル速度は100倍Jun.21550‑1630 32
https://github.com/tric/trick2018
Transcendental:世俗を超越した、超絶技巧
Ruby
Imbroglio:極めて混乱した、恥ずかしい事態
Contest
forRubyKaigi
Jun.21640‑1720 33
Closing
過去最大の参加人数(1000人超)
RubyKaigi2019
日程:2019/04/18‑20
場所:福岡福岡国際会議場
Jun.21730‑1830 34
参考
https://rubykaigi.org/2018/
https://replayrubykaigi.herokuapp.com/
Jun.21730‑1830 35

Weitere ähnliche Inhalte

Was ist angesagt?

2017-06-18 tribox Contest 祝!1周年!
2017-06-18 tribox Contest 祝!1周年!2017-06-18 tribox Contest 祝!1周年!
2017-06-18 tribox Contest 祝!1周年!kotarot
 
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話ssuserfb543d1
 
LCIFスタディツアー案内
LCIFスタディツアー案内LCIFスタディツアー案内
LCIFスタディツアー案内Hideaki Suzuki
 
TechDo Goハンズオン#3
TechDo Goハンズオン#3TechDo Goハンズオン#3
TechDo Goハンズオン#3privatemy
 
松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピールSho Hashimoto
 
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて善弘 植木
 
Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015Satomi Tsujita
 

Was ist angesagt? (8)

Railsの今昔
Railsの今昔Railsの今昔
Railsの今昔
 
2017-06-18 tribox Contest 祝!1周年!
2017-06-18 tribox Contest 祝!1周年!2017-06-18 tribox Contest 祝!1周年!
2017-06-18 tribox Contest 祝!1周年!
 
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
slackに箇条書きにしたタスクを、Notionに登録してくれるbotを作った話
 
LCIFスタディツアー案内
LCIFスタディツアー案内LCIFスタディツアー案内
LCIFスタディツアー案内
 
TechDo Goハンズオン#3
TechDo Goハンズオン#3TechDo Goハンズオン#3
TechDo Goハンズオン#3
 
松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール
 
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて
 
Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015
 

Ähnlich wie Rubykaigi2018共有会

オープンソースとロボット
オープンソースとロボットオープンソースとロボット
オープンソースとロボットRyuichi Ueda
 
Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)masayoshi takahashi
 
超変革!2017年LLイベント開催決定!
超変革!2017年LLイベント開催決定!超変革!2017年LLイベント開催決定!
超変革!2017年LLイベント開催決定!法林浩之
 
関西の Ruby コミュニティ
関西の Ruby コミュニティ関西の Ruby コミュニティ
関西の Ruby コミュニティTomoya Kawanishi
 
1000speakers仙台
1000speakers仙台1000speakers仙台
1000speakers仙台xibbar
 
[参考情報]OSC広島のお知らせ
[参考情報]OSC広島のお知らせ[参考情報]OSC広島のお知らせ
[参考情報]OSC広島のお知らせYoshitake Takata
 
新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)
新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)
新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)法林浩之
 
kosenconf をきっかけに新しい縁を
kosenconf をきっかけに新しい縁をkosenconf をきっかけに新しい縁を
kosenconf をきっかけに新しい縁をshiget84
 

Ähnlich wie Rubykaigi2018共有会 (9)

オープンソースとロボット
オープンソースとロボットオープンソースとロボット
オープンソースとロボット
 
Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)
 
超変革!2017年LLイベント開催決定!
超変革!2017年LLイベント開催決定!超変革!2017年LLイベント開催決定!
超変革!2017年LLイベント開催決定!
 
関西の Ruby コミュニティ
関西の Ruby コミュニティ関西の Ruby コミュニティ
関西の Ruby コミュニティ
 
1000speakers仙台
1000speakers仙台1000speakers仙台
1000speakers仙台
 
[参考情報]OSC広島のお知らせ
[参考情報]OSC広島のお知らせ[参考情報]OSC広島のお知らせ
[参考情報]OSC広島のお知らせ
 
新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)
新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)
新春対談「新しい司会者、出てこいや〜!」(対戦者数調査結果付き)
 
Regional Ruby Kaigi
Regional Ruby KaigiRegional Ruby Kaigi
Regional Ruby Kaigi
 
kosenconf をきっかけに新しい縁を
kosenconf をきっかけに新しい縁をkosenconf をきっかけに新しい縁を
kosenconf をきっかけに新しい縁を
 

Kürzlich hochgeladen

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Kürzlich hochgeladen (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Rubykaigi2018共有会