タグ

mrubyに関するYaSuYuKiのブックマーク (115)

  • MySQLでmrubyを動かす - Kentaro Kuribayashi's blog

    matsumotoryさんがジョインされた結果、mrubyを激しく活用していこうという機運が盛り上がり始め、というか、既にどんどん活用が広がっているところです。一方、僕はこれまでmrubyを、実際には手を動かして触ったことがなかったので「これはマズい!」と焦りを感じ、触り始めてみることにした。 とはいえ、特に取り組むべきお題もないので、文字列をmrubyコードとして評価するMySQLのUDFを作ってみることにしました。参考にしたリソースは「やったーJavaScriptの動くMySQLできたよー - 愛と勇気と缶ビール」。 github.com 使い方 git cloneしてきたら、makeするだけ。mrubyのコードを適当にとってきて、共有ライブラリをビルドし、MySQLのプラグインを置く場所にそのファイルをコピーしてくれる。 あとは、MySQLにログインして、 mysql> CREATE

    MySQLでmrubyを動かす - Kentaro Kuribayashi's blog
  • qiezi.me

    qiezi.me 2023 著作権. 不許複製 プライバシーポリシー

    qiezi.me
  • libtrusterdのldd機能の負荷テストが失敗したことで子プロセスの扱いが少し理解が進んだ件: misc

    おはようございます。先週の実家生活は、初日から次男がロタにかかるなど、どうなることかと心配されましたが、無事乗り切る事が出来、自宅に帰って4月からの新しいクラスで息子たちは保育園生活を始めました。kjunichiです。 背景 libtrusterdでldd機能の負荷テストをしたらNG。 単発だと問題ない。だからこそ、このldd機能をマージしたのだったものの、h2loadで負荷テストを行うと、途中から動かなくなる。 手元のOSXではh2loadで、リクエストを増やしていったところ、260リクエスト前後でNGとなった。 何度か、リクエスト数を調整している際にpsコマンドで、 (bash) が大量に表示され、手がかりをつかむことが出来た 分かった事 黙ってForkすると forkすると、親に子プロセスの終了時にシグナルが通知される。waitpidで、子プロセスのプロセスIDを指定すると、この通知

    libtrusterdのldd機能の負荷テストが失敗したことで子プロセスの扱いが少し理解が進んだ件: misc
  • 特定条件下におけるngx_mrubyのメモリリークを改善してメモリ増加量を半分にした - 人間とウェブの未来

    4月からペパボで働いているわけですが、前々から噂できいていたメモリリークの問題について、ペパボではわりと大規模かつ高負荷な環境でngx_mrubyを使ってくれているのでその環境を見ながらメモリリークを改善してみました。 状況的には、16時間動かしていると導入している環境のngx_mrubyを組み込んだnginxが1GBぐらいメタボっていました。 実装や幾つかの調査情報をみつつ、以下の2点においてメモリリークが発生していました。 mrubyが例外をあげて5xx系のエラーコードを返す時 mruby_set系のディレクティブを使っている時 上記のそれぞれにおいて、C側で生成したオブジェクトをarenaに登録したまま、不要になったにも関わらずarenaからオブジェクトを除外してGCさせるように処理できていなかった事が問題でした。 これらを、ほぼ同等の改修によってmrb_gc_arena_save(

    特定条件下におけるngx_mrubyのメモリリークを改善してメモリ増加量を半分にした - 人間とウェブの未来
  • mrubyのバイトコードの命令の解説 - Qiita

    mrubyでコンパイラを作ってみたり、Rubyを書く以外の方法でmrubyのバイトコード列を書く場合、バイトコードの命令を知る必要があります。 バイトコード命令は単純そうで意外と奥が深いようです。ここではmrubyのJITを作成する経験で得たバイトコードの裏仕様を解説したいと思います。 OP_NOP 何もしない命令 これって実はcodegen.cで定義されている正規のコードジェネレータでは出てこないんですよね。でもバイトコードのパッチとかやりたいときはないと困る重要な命令です。 命令の仕様ではオペランドはないのですが、実際にはオペランドの領域があるのでなにか隠しデータを保存しておくのにも便利です。 OP_MOVE MOVE Rm, RnでレジスタRnの内容をRmに代入する命令。n, mはレジスタの番号 こんなにいらんだろ?って思うほどいっぱい生成されます。OP_SENDで解説しますが引数は

    mrubyのバイトコードの命令の解説 - Qiita
  • mrubyの可変引数最適化 - Qiita

    def foo(*arg) p arg end foo(1) # -> [1] foo(1, 2, 3) # -> [1, 2, 3] このような可変引数の配列は、mrubyの実装ではRITE VMの命令OP_ENTER中で作られます。つまり、可変引数を使うとメソッドコールの度に配列のアロケーションが行われるわけです。メソッドコールの数が多ければGCも頻発することでしょう。 可変引数の使用頻度が少なければ問題ないのですが、ループを構成してメソッドコールが頻発するmrblib/enum.rbで定義されているEnumerableモジュールのメソッドは軒並み使われています。たとえば、all?の定義です。 def all?(&block) if block self.each{|*val| unless block.call(*val) return false end } else self.e

    mrubyの可変引数最適化 - Qiita
  • Ruby東京プレゼンテーション2015 にいってきた - Qiita

    それなあに? 詳しくはこちらをご覧ください http://www.digitalfukuoka.jp/events/60 "mruby x IoT"の今 についてのアツいお話を聞ける・できる会 と解釈しています。 ソレに興味をもったため参加してきました!興味深かった講演の内容をまとめてみました。 matzさんのrabbitRubyの未来」 興味深いお話で聞き入ってしまいました。 バージョン方針 言語の仕様バージョンは2桁で表現する 1.9.3 → 2.2 セキュリティのパッチをあてたアプデは下一桁で表現する 1.9.3p484 → 2.2.0 リリーススケジュール 年に1回クリスマスに!(2.x.0) 安定進化! 意図しない動きを例外に、ほぼ間違いなくアプデしてもそのまま動く! 年に数度アプデ!(2.x.y) 2.2新機能 インクリメンタルGC GCを少しずつする シンボルGC シンボ

    Ruby東京プレゼンテーション2015 にいってきた - Qiita
  • mod_mrubyとngx_mrubyの次の一手となる新しいソフトウェア - Qiita

    この記事は、mod_mruby ngx_mruby advent calendar 2014の最終日25日の記事になります。 24日は @cubicdaiya さんの「ngx_mrubyとngx_lua」でした。 無事カレンダーの全ての日程が埋まるような結果となり、非常にうれしいです。また、自分の作ったソフトウェアを使って色々工夫されているのをみて、非常にワクワクしながら全ての記事を読みました。とてもおもしろかったです。 というわけで今日は最後になるので、mod_mrubyとngx_mrubyの開発で感じていた事、そこからの次の一手として考えついた新しいソフトウェアを紹介したいと思います。 mod_mrubyとngx_mruby開発で感じていた事 これまでのHTTP/1系で実装されてきた代表的なWebサーバであるApacheやnginxはそれぞれ固有の静的な設定を記述する必要があり、Web

    mod_mrubyとngx_mrubyの次の一手となる新しいソフトウェア - Qiita
  • mruby と mgem と rbenv と - Qiita

    久しぶりに mruby の話。 mruby、アブリケーションの配布方法が決まるだけでもだいぶ違う気がするなー。コマンド一発でインストール出来るのあったらツール作り出す人いるんじゃないかな。 — mattn (@mattn_jp) 2014, 9月 2 アプリケーション配布? mgem や Rakefile がそれだろ!と断定出来ない所に悔しさがある。 #mrubymattn (@mattn_jp) 2014, 9月 2 確かにmgemコマンドが進化していない(設定を吐くだけ)ので、そこを改修する必要はありますねぇ — MATSUMOTO, Ryosuke (@matsumotory) 2014, 9月 2 この辺の話が出てたのを見て自分はどうしてたっけなと思ったので書いておく。 TL;DR mruby のライブラリ管理ツールの mgem を使う時に、rbenv と組み合わせて楽をして

    mruby と mgem と rbenv と - Qiita
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

    dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
    YaSuYuKi
    YaSuYuKi 2014/09/01
    現時点では具体的なことはいっさい言えないが、既に数ヶ月前から使っている。実感として、コア部分の安定性はだいたい困らない程度に達しているが、周辺の拡張は自力でパッチを送れるくらいでないと厳しい
  • Mrubyについて 第16回 岡山ruby, ruby on rails勉強会

    第16回 岡山ruby, ruby on rails勉強会でmrubyについて調べたこと、試したことを発表しました。Read less

    Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
    YaSuYuKi
    YaSuYuKi 2014/07/26
    mrubyの実装の理解には、RHGは確かに役立つ。RData構造体のように、Ruby実装にあるものがmrubyにもあったりするからな
  • テストツールを利用したmrbgemの作り方 - Qiita

    始めに mrubyではmrbgemを利用して機能の追加が容易にできます。Cで書かれたライブラリであれば、インタフェースを定義する事でその機能をmrubyに組込めます。現在では多くのライブラリがmrbgemとして公開され、mrubyを試すハードルは低くなりました。 しかし、小規模なマイコンをターゲットにする場合、そもそも規模が大き過ぎるなど要求に適したライブラリがなく自作する事はしばしばあります。リソースの小さなマイコンであればライブラリそのものがなく、ハードウエア依存の箇所が多くなると同じく自作を選ぶ事になります。 それならばmrubyを組込むよりも全てをCで書いた方が容易だと感じられるかもしれません。しかし、ライブラリ作成とはC向けのAPIを提供する事と同義です。そしてmrubyはC向けのAPIを取り込む仕組みがあります。Cとmrubyの両方をターゲットとするライブラリとしてmrbgem

    テストツールを利用したmrbgemの作り方 - Qiita
  • mrubyとは?開発に役立つ使い方、トレンド記事やtips - Qiita

    mrubyに関する情報が集まっています。現在472件の記事があります。また134人のユーザーがmrubyタグをフォローしています。

    mrubyとは?開発に役立つ使い方、トレンド記事やtips - Qiita
  • mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 - Matzにっき(2013-07-31)

    << 2013/07/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1. mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 >> _ mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 Twitterで質問を受けたので、 mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 という解説を行った。が、1つ140文字のTwitterでの解説にはどうしても無理があるので、 こっちでまとめることにする。 まずは、Twitterの発言*1はこんな感じ。 arenaの目的。利用中のオブジェクトはGCに回収されないよう保護

    mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 - Matzにっき(2013-07-31)