ライブラリ
- ビルトイン (104)
検索結果
先頭5件
-
GC
:: Profiler . clear -> nil (1.0) -
蓄積している GC のプロファイル情報をすべて削除します。
...ァイル情報をすべて削除します。
```ruby title="例"
GC::Profiler.enable
GC.start
GC.start
p GC::Profiler.report # => 2 回分の GC のプロファイル情報出力する。
GC::Profiler.clear
GC.start
p GC::Profiler.report # => 1 回分の GC のプロファイル情報出力する... -
GC
:: Profiler . disable -> nil (1.0) -
GC のプロファイラを停止します。
...tle="例"
GC::Profiler.disable
p GC::Profiler.enabled? # => false
```
このメソッドでは、蓄積したプロファイル情報は破棄しません。
破棄したい場合は [m:GC::Profiler.clear] を呼び出してください。
- **SEE** [m:GC::Profiler.enable], [m:GC::Profiler.enabled... -
GC
:: Profiler . enable -> nil (1.0) -
GC のプロファイラを起動します。
...ラを起動します。
このメソッドを呼び出してから GC が発生すると、
GC についてプロファイル情報を取得します。
```ruby title="例"
GC::Profiler.enable
p GC::Profiler.enabled? # => true
```
- **SEE** [m:GC::Profiler.disable], [m:GC::Profiler.enabled?]... -
GC
:: Profiler . enabled? -> bool (1.0) -
GC のプロファイラを起動中であれば true、停止中であれば false を返します。
...であれば true、停止中であれば false を返します。
```ruby title="例"
p GC::Profiler.enabled? # => false
GC::Profiler.enable
p GC::Profiler.enabled? # => true
GC::Profiler.disable
p GC::Profiler.enabled? # => false
```
- **SEE** [m:GC::Profiler.enable], [m:GC::Profiler.disable]... -
GC
:: Profiler . raw _ data -> [Hash , . . . ] | nil (1.0) -
GC のプロファイル情報を GC の発生ごとに [c:Hash] の配列 (:GC_INVOKE_TIME が早いもの順)で返します。[c:GC::Profiler] が有効になっていない場合は nil を返します。
...に [c:Hash] の配列
(:GC_INVOKE_TIME が早いもの順)で返します。[c:GC::Profiler] が有効になっていない場合は nil を返します。
```text title="例"
GC::Profiler.enable
GC.start
GC::Profiler.raw_data
# => [
{
:GC_TIME=>1.3000000000000858e-05,
:GC_INVOKE_TIME=......有効にして Ruby をビルドした場合、以下のキーも参照できます。
- :GC_MARK_TIME
- :GC_SWEEP_TIME
- :ALLOCATE_INCREASE
- :ALLOCATE_LIMIT
- :HEAP_USE_SLOTS
- :HEAP_LIVE_OBJECTS
- :HEAP_FREE_OBJECTS
- :HAVE_FINALIZE
- **SEE** [m:GC::Profiler.report], [m:GC::Profiler.result]... -
GC
:: Profiler . report(out = $ stdout) -> nil (1.0) -
[m:GC::Profiler.result] の結果を out に出力します。
...[m:GC::Profiler.result] の結果を out に出力します。
- **param** `out` -- 結果の出力先を指定します。デフォルトは $stdout です。
```ruby title="例"
GC::Profiler.enable
GC.start
GC::Profiler.report
# => GC 4 invokes.
# Index Invoke Time(sec) Use Size(byte)......Total Size(byte) Total Object GC Time(ms)
# 1 0.019 303720 1269840 31746 1.25899999999999967493
```
- **SEE** [m:GC::Profiler.result]... -
GC
:: Profiler . result -> String (1.0) -
GC のプロファイル情報をフォーマットし、文字列として返します。
...ごとに集計します。
以下は、5 回 GC が発生した場合の実行例です。
```console
$ ruby -e "GC::Profiler.enable; a = Array.new(100000){ 'aa' }; puts GC::Profiler.result"
GC 5 invokes.
Index Invoke Time(sec) Use Size(byte) Total Size(byte) Total Object......が起動するまでに経過した時間
- **`Use Size`**:
ヒープ内での使用サイズ
- **`Total Size`**:
ヒープ全体のサイズ
- **`Total Object`**:
ヒープ内に存在するオブジェクトの個数
- **`GC Time`**:
GC の処理時間
- **SEE** [m:GC::Profiler.report]... -
GC
:: Profiler . total _ time -> Float (1.0) -
GC のプロファイル情報から GC の総計時間を計算し、msec 単位で返します。
...GC のプロファイル情報から GC の総計時間を計算し、msec 単位で返します。
```ruby title="例"
GC::Profiler.enable
GC.start
p GC::Profiler.total_time # => 0.0011530000000000012
```...
