1

セッションと名前空間を使用する場合、IO操作は実際にいつ発生しますか(セッションはサーバー上のどこかにファイルとして保存されるため)?

* Zend_Session_Namespace *の新しいインスタンスを宣言するとすぐに?

$myNamespace = new Zend_Session_Namespace('myNamespace');

名前空間の変数を読み書きするとすぐに?

$myNamespace = new Zend_Session_Namespace('myNamespace');
$myNamespace->someVar = 3;
$myVar = $myNamespace->someVar;

どの操作が本当にコストがかかるか(IO読み取り/書き込み)を知りたいです。

4

2 に答える 2

3

Zend_Session_NamespaceネイティブPHPセッションを使用します。
PHPの公式ドキュメントによると:

PHPがシャットダウンすると(またはsession_write_close()呼び出されたとき)、PHPはスーパーグローバルを内部的にエンコードし、$_SESSIONこれをセッションIDとともに書き込みコールバックに渡します。書き込みコールバックが終了すると、PHPは内部でクローズコールバックハンドラーを呼び出します。

ご覧のとおり、セッションはスクリプトのシャットダウン時に書き込まれます。

于 2012-07-20T09:49:38.683 に答える
2

Zend_Session_Namespaceは、$_SESSIONのラッパーとして機能します。

$myNamespace = new Zend_Session_Namespace('myNamespace'); //write operation $_SESSION
$myNamespace->someVar = 3;               //write operation on $_SESSION
$myVar = $myNamespace->someVar;                // read operation on $_SESSION

ただし、すべての場合で、読み取り/書き込みIOはハードディスクではなくRAMで行われました。アプリケーションインスタンスが終了すると、それだけがhardiskに書き込まれます。

于 2012-07-20T10:39:24.113 に答える