国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

無(wú)法釋放進(jìn)程內(nèi)存

yepo
<?php

use PDO;
use Workerman\Worker;
require_once 'Workerman/Autoloader.php';

$w = new Worker();
$w->onWorkerStart = function(){
    echo memory_get_usage()."\n";
    $set = Config::getItem('db');
    $pdo = new PDO(
        $set,
        $set,
        $set,

    );
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $pdo->prepare("SELECT * FROM orders", );
    $stmt->execute(null);
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $data = $stmt->fetchAll();
    $stmt = null;
    echo memory_get_usage()."\n";
    unset($data);
    echo memory_get_usage()."\n";
};

Worker::runAll();開(kāi)啟服務(wù)前,通過(guò)php a.php status查看進(jìn)程的占用內(nèi)存是4M
查詢了數(shù)據(jù)庫(kù),然后把結(jié)果變量unset了,通過(guò)memory_get_usage()查看內(nèi)存是被釋放了,但是再次php a.php status查看進(jìn)程的占用內(nèi)存是72M
到此我有個(gè)疑問(wèn),為什么進(jìn)程的內(nèi)存沒(méi)有被釋放?
?

4972 4 0
4個(gè)回答

yepo

呼叫群主大大

  • 暫無(wú)評(píng)論
walkor 打賞

workerman里內(nèi)存統(tǒng)計(jì)使用的是?memory_get_usage(true);
你的測(cè)試簡(jiǎn)本里把參數(shù)true加上試下

  • yepo 2019-06-16

    群大你好,我使用memory_get_usage(true)測(cè)試了,發(fā)現(xiàn)最后輸出的memory_get_usage(true)返回結(jié)果沒(méi)有了memory_get_usage()的變化那么大了;其實(shí)我的問(wèn)題是,我的項(xiàng)目使用了Workerman的Webserver,然而最近發(fā)現(xiàn)進(jìn)程的內(nèi)存不斷的增長(zhǎng),我已經(jīng)確認(rèn)了不是項(xiàng)目里的$GLOBALS全局變量的問(wèn)題,也給PHP安裝了event擴(kuò)展和Linux調(diào)優(yōu)。折騰了很久,才發(fā)現(xiàn)只要查詢數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí),進(jìn)程的內(nèi)存就無(wú)法釋放,一開(kāi)始我肯定覺(jué)得是我代碼問(wèn)題,然后我就獨(dú)立的寫(xiě)了一個(gè)demo(就是以上),測(cè)試了發(fā)現(xiàn)資源沒(méi)有被釋放,,,

yepo

memory_get_usage(true)這樣獲得的結(jié)果差別很大了

  • 暫無(wú)評(píng)論
walkor 打賞

這個(gè)應(yīng)該和workerman沒(méi)有關(guān)系。可能是PDO有自己的內(nèi)存管理機(jī)制,使用后內(nèi)存并不釋放,下次復(fù)用,提高性能。
你可以寫(xiě)個(gè)test.php ,里面不用workerman,就一個(gè)測(cè)試pdo的腳本,看下內(nèi)存是否釋放。

  • yepo 2019-06-16

    測(cè)試完畢,確認(rèn)不是workerman的問(wèn)題,是PDO的一些機(jī)制問(wèn)題。我再想想其他辦法吧

  • walkor 2019-06-16

    這部分內(nèi)存pdo應(yīng)該會(huì)重復(fù)利用的,所以應(yīng)該不會(huì)一直增長(zhǎng),一般情況下不用擔(dān)心。

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??