什么是 PHP 共享内存分配(mm,编译的 --with-mm)会话模块?
你用过吗?你测试过吗?效果好吗?你有会话锁定问题吗?
使用文件或自定义会话处理程序(如数据库)时,很容易查看会话数据的内容,但是是否可以使用此模块查看会话数据?想要查看会话数据的个人原因是 (1) 测试 PHP 垃圾收集是否正常工作,以及 (2) 确保它不会占用所有系统内存。
我认为它曾经是一个单独的(PECL?Zend?)扩展,但现在它是核心。
将其编译成 PHP 二进制文件的唯一要求是OSSP mm headers,下载量约为 330k。
$ ./configure --help
// --with-mm=DIR SESSION: Include mm support for session storage
我能找到的唯一信息来自 2006 年的留言板帖子,该帖子引用了现在缺失的Zend 会话教程页面 [404],作者引用了该页面:
如果您需要更高的性能,mm 模块是一个可行的选择;它将数据存储在共享内存中,因此不受硬件 I/O 系统的限制。
我了解它的两个限制:
(1) 注意mm的会话存储模块不保证对同一个会话的并发访问被正确锁定。使用基于共享内存的文件系统(例如 Solaris/Linux 上的 tmpfs,或 BSD 上的 /dev/md)将会话存储在文件中可能更合适,因为它们已正确锁定。(2) 会话数据存储在内存中,因此 web 服务器重新启动将其删除。
我真的很想要一个规范的描述,但任何和所有信息都值得赞赏。