Sla*_*lay 2 php memory performance
我想问一下在php中实例化对象的性能和内存使用情况.
在我的应用程序的每个php文件中,我都包含一个连接到数据库的文件.
$db->DB::getInstance();
$db->connect('all my credentials');
Run Code Online (Sandbox Code Playgroud)
这是我的db类中的getInstance()函数.
//singleton database instance
public static function getInstance() {
if (!self::$Instance) {
self::$Instance = new DB();
}
return self::$Instance;
}
Run Code Online (Sandbox Code Playgroud)
目前一切都很顺利.但我担心性能问题,可以改进,可能的缺陷等.
我研究并发现单例实例可以帮助节省内存.如果对象已经实例化,它将重用该对象.我对吗?
我的确切问题是
例如,如果我有10个用户访问脚本,是否意味着该对象将实例化10次?当发生这种情况时,它会对我的内存使用量加上10倍的负载吗? - >这是我感兴趣的
感谢任何专家意见.
与所有性能调整一样,你应该衡量你正在做什么,而不是盲目地执行一些你并不完全理解的伏都教仪式.保存对象时$_SESSION,PHP将捕获对象状态并从中生成文件(序列化).在下一个请求时,PHP将创建一个新对象并使用此状态重新填充它.这个过程比创建对象要昂贵得多,因为PHP必须进行磁盘I/O然后解析序列化数据.这必须在读取和写入时发生.
通常,PHP被设计为无共享架构.这有其优点和缺点,但试图以某种方式回避它,通常不是一个好主意.