PHPのGC(ガベージコレクション)を確率起動ではなく、cronで処理したいです。

1)PHPでGCを動作させる関数はありませんか?
2)GCを切って、GCと同じような処理を実現するにはどうしたらいいですか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/01/25 17:58:42
  • 終了:2007/02/01 18:00:31

回答(2件)

id:eggplantbb No.1

eggplantbb回答回数45ベストアンサー獲得回数22007/01/25 18:58:35

ポイント35pt

記憶にある限りでは手動でGCを行う関数は見あたらなかったかと思います。

PHPのマニュアル

> session.save_pathのパスの深さが2より大きい場 合、ガーベッジコレクションは行われません。

とあります。

DocumentRootより上の階層にセッション保存用のディレクトリを作成して、

cronからfindコマンドで掃除するのが手っ取り早い気がします。

id:kaijikaiji No.2

kaijikaiji回答回数40ベストアンサー獲得回数02007/01/27 17:54:35

ポイント35pt

ini_set('session.gc_probability', 0);

session_start();


とすれば GC は起動しません。

GC の起動確率が 0(0%)だからです。


ini_set('session.gc_probability', 100);

ini_set('session.gc_divisor', 100);

session_start();


のようにすると起動確率が 1(100%)となるので必ず起動します。

これを cron で動かすとよいです。


ini_set で設定している値の意味はこちらに書かれています。

http://jp.php.net/manual/ja/ref.session.php

  • id:matsubobo
    PHPのメモリ管理のGCではなくて、セッション周りのGCについてですね。

    2)に対して、こちらにcronで処理する方法が記載してあります。
    http://www.tymy.net/~matsu/blog/2008/11/16/php%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AEgc/

この質問への反応(ブックマークコメント)

トラックバック

  • sessionのgcはどんな動きをするか >|php| /** * session gc test * * セッションに値が入っている場合は、session_startのタイミングでtimestampが更新されていく * セッションが空の場合は、session_startし
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません