191件ヒット
[101-191件を表示]
(0.053秒)
別のキーワード
ライブラリ
- ビルトイン (48)
- fiddle (24)
-
fiddle
/ import (12) - objspace (12)
モジュール
- Fiddle (24)
-
Fiddle
:: Importer (12) - GC (36)
- ObjectSpace (12)
キーワード
-
Data
_ Wrap _ Struct (12) - GC (12)
-
NEWS for Ruby 2
. 1 . 0 (12) -
NEWS for Ruby 2
. 2 . 0 (11) - fiddle (12)
- free (12)
-
memsize
_ of _ all (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 4 feature (12) -
ruby
_ xfree (12) -
ruby
_ xmalloc (12) - stat (24)
- stress= (12)
- struct (12)
検索結果
先頭5件
-
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (234.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
...インスタンスである Ruby オブジェクトを生成し、それを返します。
mark、free はそれぞれ sval のマーク用・解放用の
関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下......です。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct mytype *m = malloc(sizeof(struct mytype));... -
fiddle (36.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
..."long tv_usec"])
end
timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)
if e == 0
p timeval.tv_sec #=> 1173519547
end
上の例で、メモリの割り当てに M::Timeval.new ではなく
M::Timeval.malloc を使用していることに注意してください。......り値
fiddle でインポートした C の関数を呼び出すとき、
その引数と返り値はインポートする際に指定した型と
Ruby のオブジェクトの種類によって変換されます。
引数の変換は以下の通りです。
: void* (つまり任意のポイン......g
Ruby の整数を C の整数に変換します。
: double/float
Ruby の整数 or 浮動小数点数を C の浮動小数点数に変換します
返り値の変換は以下の通りです。
: void
nil を返します
: (unsigned) char/short/int/long/long long
C の整数を Ruby... -
Fiddle
:: Importer # struct(signature) -> Class (28.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
...C の構造体型に対応する Ruby のクラスを構築して返します。
構造体の各要素は C と似せた表記ができます。そしてそれを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_u......ラスを生成します。
このメソッドが返すクラスには以下のメソッドが定義されています
* クラスメソッド malloc
* initialize
* to_ptr
* to_i
* 構造体の各メンバへのアクセサ
返されるクラスは Fiddle::CStruct を継承しています......require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern "int gettimeofday(void*, void*)"
Timeval = struct(["long tv_sec", "long tv_usec"])
end
time = M::Timeval.malloc
M.gettimeofday(time, Fiddle::NULL)
p time.tv_sec
p time.tv_usec... -
Fiddle
. # free(addr) -> nil (24.0) -
指定された addr が指すメモリ領域を開放します。
...e.#malloc が返した整数を addr に与えなければいけません。
そうでない場合、ruby インタプリタが異常終了します。
@param addr Fiddle.#malloc で確保されたメモリ領域を指す整数を指定します。
例:
require 'fiddle'
addr = Fiddle.malloc(10... -
ObjectSpace
. # memsize _ of _ all(klass = nil) -> Integer (24.0) -
すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位 で返します。
...ラスのインスタンスのメモリ使用量を返し
ます。
本メソッドは以下のような Ruby のコードで定義できます。
//emlist[例][ruby]{
def memsize_of_all klass = false
total = 0
ObjectSpace.each_object{|e|
total += ObjectSpace.memsize_of(e) if......くまでもヒ
ントとして扱う必要があります。特に T_DATA の値は正しくないでしょう。
また、同様に戻り値の内容は malloc されたメモリの合計でもない事に注意し
てください。
本メソッドは C Ruby 以外では動作しません。... -
GC
. stat(key) -> Numeric (18.0) -
GC 内部の統計情報を Hash で返します。
...ect=>838,
:malloc_increase=>181034,
:malloc_limit=>16777216,
:minor_gc_count=>2,
:major_gc_count=>0,
:remembered_shady_object=>55,
:remembered_shady_object_limit=>0,
:old_object=>2422,
:old_object_limit=>0,
:oldmalloc_increase=>277386,
:oldmalloc_limit=>167772......16
}
戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。
本メソッドは C Ruby 以外では動作しません。......:malloc_increase_bytes=>2389312,
:malloc_increase_bytes_limit=>16777216,
:minor_gc_count=>0,
:major_gc_count=>0,
:remembered_wb_unprotected_objects=>0,
:remembered_wb_unprotected_objects_limit=>0,
:old_objects=>0,
:old_objects_limit=>0,
:oldmalloc_increa......se_bytes=>2389760,
:oldmalloc_increase_bytes_limit=>16777216
}
戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。
本メソッドは C Ruby 以外では動作しません。... -
GC
. stat(result _ hash = {}) -> {Symbol => Integer} (18.0) -
GC 内部の統計情報を Hash で返します。
...ect=>838,
:malloc_increase=>181034,
:malloc_limit=>16777216,
:minor_gc_count=>2,
:major_gc_count=>0,
:remembered_shady_object=>55,
:remembered_shady_object_limit=>0,
:old_object=>2422,
:old_object_limit=>0,
:oldmalloc_increase=>277386,
:oldmalloc_limit=>167772......16
}
戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。
本メソッドは C Ruby 以外では動作しません。......:malloc_increase_bytes=>2389312,
:malloc_increase_bytes_limit=>16777216,
:minor_gc_count=>0,
:major_gc_count=>0,
:remembered_wb_unprotected_objects=>0,
:remembered_wb_unprotected_objects_limit=>0,
:old_objects=>0,
:old_objects_limit=>0,
:oldmalloc_increa......se_bytes=>2389760,
:oldmalloc_increase_bytes_limit=>16777216
}
戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。
本メソッドは C Ruby 以外では動作しません。... -
GC
. stress=(value) (12.0) -
GCのストレスモードを引数 value に設定します。 引数 value が真に設定されている間は、GC を行えるすべての機会に GC を行います。
...合に指定します。
: 0x02
sweep を遅らせる(Lazy Sweep を行う)に指定します。
: 0x04
malloc/calloc/realloc の後でメジャーGCを動作させる場合に指定します。
//emlist[例][ruby]{
GC.stress # => false
GC.stress = true
GC.stress # => true
//}
@see GC.stress...