0

我在飞行中创建了以下课程index.class.php:-

<?php
class index{
        public function loadTitle() {
            $title = "Welcome to My Website";
            return $title;
        }
    }
?>

现在,我在我的index.php文件中使用它,如下所示

    <?php
        require_once("index.class.php");
        $obj = new index();
        echo $obj->loadTitle();
    ?>

我的问题是因为页面会因为大量的文章和图片而变得沉重,我预计每天有 1500-2500 名用户在其中。

我是否还需要取消设置内存,我知道 PHP 有自己的垃圾收集器,但以下 URL 让我害怕:- www.google.com/search?q=php+memory+leak+with+new

我在 StackOverflow 中看到一些问题说它确实会消耗内存,并且某些人建议使用该unset功能,但我不知道该怎么做..

这是我的尝试:

我只需要打电话吗

<?php
    unset($obj); // At the end of the page, or where i will no more be using this object.
?>

或者我也必须设置 NULL 值。

<?php
    $obj = NULL;
    unset($obj);
?>

上面的代码可以释放内存吗,还是我还需要做其他事情?请建议并教我!

4

3 回答 3

3

PHP 具有自动垃圾收集功能。每次重新分配$obj时,如果旧值不再可访问,它的内存将被回收。因此,除非您将它们存储在某个地方,否则您只会引用一个对象,而不是您创建的所有对象。

于 2013-09-02T14:35:10.837 回答
1

你应该看看 PHP 的垃圾收集器。如果你愿意,你甚至可以强制 PHP 收集垃圾:

<?php
gc_enable(); // Enable Garbage Collector
var_dump(gc_enabled()); // true
var_dump(gc_collect_cycles()); // # of elements cleaned up
gc_disable(); // Disable Garbage Collector
?>

来源: http: //php.net/manual/en/features.gc.php

于 2013-09-02T14:40:42.477 回答
1

首先,您不需要一直取消设置变量。我见过人们在他们的 PhP 脚本末尾取消设置所有变量,这是没用的。

您唯一需要取消设置变量的情况是,如果您在 PhP 中存在内存问题,并且您可以销毁不会在脚本中其他任何地方使用的变量,但您仍然有很多事情要做(考虑时间或记忆)。

您可能还想看看:

http://www.stackoverflow.com/questions/584960/whats-better-at-freeing-memory-with-php-unset-or-var-null

于 2013-09-02T14:35:34.720 回答