Php 跨越所有脚本/会话的静态变量

Php 跨越所有脚本/会话的静态变量,php,Php,在php网页上,在php代码的开头,我声明并设置了许多变量,这些变量在脚本执行过程中不会改变 每次用户访问页面时,脚本都会被执行,我猜变量的值都会存储在RAM中? 因此,如果100个访问者同时访问页面,那么相同的静态变量在RAM中存储100次 有没有办法只在RAM中存储它们一次,并且可以在任何脚本中使用它们的值,而不在每个脚本中声明它们?就像PHPs超球体 为了clarities:我问这个问题的唯一原因是为了实现性能提升(通过不在RAM中加载相同的东西X次)。如果我所要求的方法没有节省任何内存或

在php网页上,在php代码的开头,我声明并设置了许多变量,这些变量在脚本执行过程中不会改变

每次用户访问页面时,脚本都会被执行,我猜变量的值都会存储在RAM中? 因此,如果100个访问者同时访问页面,那么相同的静态变量在RAM中存储100次

有没有办法只在RAM中存储它们一次,并且可以在任何脚本中使用它们的值,而不在每个脚本中声明它们?就像PHPs超球体

为了clarities:我问这个问题的唯一原因是为了实现性能提升(通过不在RAM中加载相同的东西X次)。如果我所要求的方法没有节省任何内存或对性能有其他积极影响,我认为没有理由改变我当前的方法


谢谢

您似乎正在处理的概念可以概括为:

通过在PHP进程之间存储和共享PHP变量来防止内存开销,这样就不必为每个脚本重新初始化PHP变量

简而言之,这是不可能的,因为PHP的作用域特性。每次执行PHP脚本时,它都需要将变量的一个副本引入它自己的执行范围

到目前为止,降低服务器速度的最大罪魁祸首是磁盘访问时间

如果您有:

vars.php`

<?php
$var1 = 'hi';
$var2 = 20;
$var3 = 99;

您似乎正在处理的概念可以概括为:

通过在PHP进程之间存储和共享PHP变量来防止内存开销,这样就不必为每个脚本重新初始化PHP变量

简而言之,这是不可能的,因为PHP的作用域特性。每次执行PHP脚本时,它都需要将变量的一个副本引入它自己的执行范围

到目前为止,降低服务器速度的最大罪魁祸首是磁盘访问时间

如果您有:

vars.php`

<?php
$var1 = 'hi';
$var2 = 20;
$var3 = 99;


php在web服务器处理页面之前运行,然后资源将免费提供给其他服务器user@LelioFaieta我知道php在我的Web服务器上运行,不管发生什么,但是我在php脚本中声明的变量只在脚本执行时加载到内存中。当脚本结束时,资源被释放。我知道。但是,有没有一种方法可以避免每次执行脚本时都将它们加载到内存中,而只将它们永久存储在内存中一次?您知道在性能方面没有差异,是吗?对于简单的变量来说,这不值得——但您所说的听起来很像使用Redis缓存服务器。您正在运行什么版本的PHP?自PHP5.5以来,OpCache在默认情况下已启用,因此您可能没有理由尝试进一步进行微优化。在web服务器处理页面之前,PHP将运行,然后资源将免费提供给其他服务器user@LelioFaieta我知道php在我的Web服务器上运行,不管发生什么,但是我在php脚本中声明的变量仅在脚本执行时加载到内存中。当脚本结束时,资源被释放。我知道。但是,有没有一种方法可以避免每次执行脚本时都将它们加载到内存中,而只将它们永久存储在内存中一次?您知道在性能方面没有差异,是吗?对于简单的变量来说,这不值得——但您所说的听起来很像使用Redis缓存服务器。您正在运行什么版本的PHP?自PHP5.5以来,OpCache在默认情况下已启用,因此您可能没有理由尝试进一步进行微优化。
硬件便宜,程序员不便宜。砰+1@MonkeyZeus谢谢,我接受了你的回答。我同意这不是问题,因为即使VAR占用1MB的空间,1000个并发会话也只占用1gb的空间,这确实非常便宜:)。所以剩下的唯一问题是:OpCache在默认情况下是启用的。我的“vars.php”文件每分钟都会被一个守护进程更改。在守护进程更新vars.php文件后,index.php文件是否有风险通过OpCache获得一个“过时”的vars.php文件(我的意思是,超过几微秒);dr:By
php.ini
的默认设置,最多关闭1秒。长版:根据你之前的评论,您正在运行PHP7.0,因此我建议您检查
PHP.ini
文件并阅读选项
opcache.validate\u timestamps
opcache.revalidate\u freq
,以便更好地理解。@VincentMertens如果您想看到
opcache
正在运行,请编写一个包含
硬件便宜,程序员不便宜。砰+1@MonkeyZeus谢谢,我接受了你的回答。我同意这不是问题,因为即使VAR占用1MB的空间,1000个并发会话也只占用1gb的空间,这确实非常便宜:)。所以剩下的唯一问题是:OpCache在默认情况下是启用的。我的“vars.php”文件每分钟都会被一个守护进程更改。在守护进程更新vars.php文件后,index.php文件是否有风险通过OpCache获得一个“过时”的vars.php文件(我的意思是,超过几微秒);dr:By
php.ini
的默认设置,最多关闭1秒。长版:根据你之前的评论,您正在运行PHP7.0,因此我建议您检查
PHP.ini
文件并阅读选项
opcache.validate\u timestamps
opcache.revalidate\u freq
,以便更好地理解。@VincentMertens如果您想看到
opcache
正在运行,请编写一个包含