php如何把内容长期保留在内存

不要使用php的共享内存函数。
1、因为在linux和win32中的内存管理机制不同,因此php也需要使用不同的扩展库来操作。
2、php的共享内存函数功能较弱,只能整块的读取和写入使用序列化数据的方法并不可取
1、对于数组,serialize后的串比var_export得到串要大近一倍。这样很不划算
2、unserialize是在php有限内存(默认8m)中进行的,对于数兆的数据的反序列话很困难对于较大的字典数据应保存为定长记录文件。
在一个已排序的定长记录文件中用文件函数查找记录是很快的,所以没有必要加载到内存。
为了加快文件的读取,你还可以把文件放入内存驱动器!

② 如何增加PHP的内存memory

运行PHP程序,通常会遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的错误, 这个意味着PHP脚本使用了过多的内存,并超出了系统对其设置的允许最大内存。解决这个问题,首先需要查看你的程序是否分配了过多的内存,在程序没有问题的情况下,你可以通过一下方法来增加PHP的内存限制(memory_limit)。

检查php的内存限制值
为了查看这个值,你需要建立一个空的php文件,比如view-php-info.php。然后将一下代码贴到里面。
<?php phpinfo(); ?>
将这个脚本放到你的Web服务器上,然后在浏览器中调用它。这时你可以看到你的PHP环境配置的信息,其中有一部分是关于“memory_limit”的,
注:你可以用这种方法来查看php的其他参数设置,不仅仅是memory_limit

memory_limit应该设为多少?
这个完全依赖于你的应用的要求。比如Wordpress,运行起核心代码需要32MB。Drupal 6则要求这个值最小为16MB,并推荐设置为32MB。如果你又安装不少的插件(plugins),尤其是那些要进行图像处理的模块,那么你可能需要128MB或更高的内存。

如何设置memory_limit

方法1:.htaccess
说明: 这种方法只有在php以Apache模块来执行时才生效。 在你的网站的根目录下找到“.htaccess”文件,如果没有,可以自己创建一个。然后把以下配置放入其中php_value memory_limit 128M ; 可以将128M改为任何你想设置的值

方法2:运行时修改php的内存设置
在你的php代码中增加以下命令行即可。
ini_set('memory_limit','128M');
memory_limit修改失败

方法3:php.ini
最简单或常用的方法是修改php.ini
1.首先找到对你的网站生效的php.ini文件 由于有多个地方都可以设置php的参数,找到正确的配置文件,并进行更改是首先要做的一步。如果你上面的方法建立了php文件来查看其配置参数,则你可以找到“Loaded Configuration File”这一项,以下是个例子:

对于Linux用户,你可以通过执行“php -i | grep Loaded Configuration File”来找到对应的配置文件。而Windows用户,你可以尝试修改你的php安装目录下的php.ini。

2.编辑php.ini 在php.ini中,找到“memory_limit”这一项,如果没有,你可以在文件的尾部自己增加这个参数。以下是一些设置范例
memory_limit = 128M ; 可以将128M改为任何你想设置的值
保存文件

3.重启web 服务器 如果是web服务器使用Apache, 则执行:
httpd restart
有些情况下,你可能不被允许私修改php.ini。比如如果你购买了虚拟主机服务,但是你的服务商确禁止你修改这个文件。那么,你可以需要考虑用其他方法来增加memory_limit的值。

如果你使用虚拟主机,有可能会出现memory_limit的值修改失败。这个需要联系你的服务商帮你处理。

③ php 在类中如何释放内存。

你的方法没有错,可是你说读取90W条数据,你读取的时候它就已经是占用着内存了,你应该循环小批量读取,每次循环结束都销毁本次循环的变量。但同时提醒你两点:
1、unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。
2、只有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存。

④ php的最大内存限制是多少

这个看情况了,处理大数据肯定需要的内存更大,只是本地调试肯定用不了多少。
php.ini的内存限制默认为memory_limit = 128M,只要把memory_limit设为-1,就不会限制你跑cli脚本时的内存限制。
一般作为一台专门运行php的服务器,肯定要尽可能的把内存给于php运行,一台不够就追加。

⑤ 大家能接受一个php页面消耗多大的内存 - PHP进阶讨论

我的discuz一页占用了2M左右的内存,不过代码被改动了很多,感觉很夸张,一个用户就占了2M,那麼一台2G内存的服务器1000用户在线岂不是不够内存用了?:funk:

⑥ php页面内存消耗 多大

解决办法:
1,修改 php.ini
将memory_limit由 8M 改成 16M(或更大),重启apache服务
2,在PHP 文件中 加入 ini_set(”memory_limit”,”100M”);
注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限
3,修改.htaccess 文档(前提是该目录支持.htaccess)
在文档中新增一句:php_value memory_limit 16M(或更大)

⑦ php 如何分配内存

php都是显式内存分配,没有隐式分配内存的方法吧.对于php一个变量定义的时候应该就在内存中开辟了一块空间吧.没有c那样可以使用malloc alloc realloc隐士分配内存.

⑧ 查看PHP程序占用多少内存

想要知道编写的 PHP 脚本需要占用多少内存么?很简单,直接使用 PHP 查看当前分配给 PHP 脚本的内存的函数 memory_get_usage() 就可以了$memory = round(memory_get_usage() / 1024 / 1024, 2).'MB';
上面的程序默认输出单位为 byte(s))我将它转换成MB,也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)。
更多问题可以去php中文网问答社区提问http://www.php.cn/wenda.html,大神在线帮你解决,希望对你有帮助

⑨ 运行php程序文件占用多大内存

4781440这个事字节,也就是大约4M
共享文件,按功能分大类,好维护,好修改!
php内存占用过多主要是程序问题,比如把大数组,大数据读入进行处理!
首页需要4M,那么256M也实在太少了点,静态化吧
vps?

⑩ 如何获知PHP程序占用多少内存memory

PHP性能优化过程中需要获取PHP内存消耗,使用memory_get_usage()函数可获取当前的内存消耗情况,函数使用简单,这里讨论一下memory_get_usage()函数的用法与实例

三,基础用法与实例
1,获取当前的内存消耗量

复制代码代码如下:

<?php
echo memory_get_usage();
$var = str_repeat("liuhui", 10000);
echo memory_get_usage();
unset($var);
echo memory_get_usage();
?>

分别输出:62328 122504 62416
说明:memory_get_usage()函数输出的数值为bytes单位

2,格式化memory_get_usage()输出

复制代码代码如下:

<?php
function convert($size){
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
echo convert(memory_get_usage(true));
?>

输出:256 kb

3,自定义函数获取数组或变量值大小

复制代码代码如下:

<?php
function array_size($arr) {
ob_start();
print_r($arr);
$mem = ob_get_contents();
ob_end_clean();
$mem = preg_replace("/\n +/", "", $mem);
$mem = strlen($mem);
return $mem;
}
$memEstimate = array_size($GLOBALS);
?>