タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

qiitaとmemory-managementとrubyに関するnabinnoのブックマーク (5)

  • gcを知らない人のためのmruby gc - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? gc(garbage collection)とは 確保したメモリを自動的に解放してくれる仕組み メモリを確保する際は、アプリケーションが要求した量より多い量が確保される。その多い分は、要求したメモリの管理のためで、管理領域があることで要求したメモリが辿れるようになっている。アプリケーションが要求した領域を解放する際は、管理領域を使って、順次メモリを辿っていき、合致する領域を探すといった事を行う。 mark & sweep 古典的なgcの一つにmark & sweepがある mark & sweepでは、使っていないメモリを探して解放する

    gcを知らない人のためのmruby gc - Qiita
  • RubyのGCと仲良くしたい〜WeakRefオブジェクトを削除するぞ編〜 - Qiita

    Rubyでは、作成したオブジェクトがなにかのタイミングでGCによってメモリから解放されています。 一般的なオブジェクトは、どこからかに参照されている間は必要、参照されていないなら不要とGCに判断され、メモリから解放されます。 例外的に 弱い参照 -Wikipedia として定義されたオブジェクトは、まだ参照されていてもなにかのタイミングでGCにぽいぽいされてしまいます。 一見、使いようが無いようですが、生成コストがかかる値をキャッシュしておき、メモリに余裕がない場合(一般にGCが動くタイミング)にキャッシュを破棄する、というようなことができます。 機能の実現に必要となることはありませんが、速度改善などに役立つテクニック的な。 なおタイトルはてきとーです。「○○編」と書いていますが、別の編があったりはしません。たぶん。 Ruby2.1で動作検証をしましたが、1.9以降ならたぶん大丈夫なんじゃ

    RubyのGCと仲良くしたい〜WeakRefオブジェクトを削除するぞ編〜 - Qiita
  • ActiveRecordがメモリを食って解放しない問題 - Qiita

    [1] pry(main)> ObjectSpace.each_object(ActiveRecord::Base).count => 0 [2] pry(main)> User.limit(100) User Load (1.5ms) SELECT `users`.* FROM `users` LIMIT 10 [4] pry(main)> ObjectSpace.each_object(ActiveRecord::Base).count => 100 [5] pry(main)> User.limit(100) User Load (0.3ms) SELECT `users`.* FROM `users` LIMIT 10 [7] pry(main)> ObjectSpace.each_object(ActiveRecord::Base).count => 200 作ったActiveR

    ActiveRecordがメモリを食って解放しない問題 - Qiita
  • Ruby 2.1.1 GC Tuning - Qiita

    Help us understand the problem. What is going on with this article? Ruby2.1では、RGenGCによりかなりパフォーマンスが改善されている。 また、チューニングパラメータが増えているが、まとまった日語の解説が無かったので書いてみた。 間違いがある可能性があるので、指摘は歓迎です。 RGenGCとは RGenGC(Restricted Generational Garbage Collection)については、まずはこれを読むべし www.atdot.net/~ko1/activities/rubyconf2013-ko1_pub.pdf www.atdot.net/~ko1/activities/2014_rubyconf_ph_pub.pdf Ruby 2.1: RGenGC · computer talk by

    Ruby 2.1.1 GC Tuning - Qiita
  • Ruby でラインメモリプロファイラ - Qiita

    プロファイラ好きなモニタの前の皆さんこんにちは。@sonots です。この記事では、Ruby コードのどの行がどのぐらいメモリを消費しているか調べる方法を紹介します。 オブジェクトの数を数える Ruby には ObjectSpace というオブジェクトの情報を集めたり操作したりする module があります。 このモジュールの each_object メソッドを使用すると、RubyVM 上の全てのオブジェクトを取り出すことができます。 このメソッドを使って、以下のようなコードを書くと、実行した地点で、RubyVM 中にどのクラスのオブジェクトが何個存在しているのかカウントできたりするわけです。興味深いですね! ObjectSpace.each_object.inject(Hash.new 0) {|h,o| h[o.class]+=1; h } # => {Class=>241, Stri

    Ruby でラインメモリプロファイラ - Qiita
  • 1