Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106084 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 52758 invoked from network); 28 Jun 2019 03:25:09 -0000 Received: from unknown (HELO mail-io1-f47.google.com) (209.85.166.47) by pb1.pair.com with SMTP; 28 Jun 2019 03:25:09 -0000 Received: by mail-io1-f47.google.com with SMTP id j6so8877470ioa.5 for ; Thu, 27 Jun 2019 17:41:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=ipbQdlZvw4DX8eeADFuwuSCCWbUfxIxTvY/5lKSg42I=; b=Sru9zMF28BMXD9TrTHzH2ZepL4ZDanmJvKWqloYzcEJWZDe0f9qnXY5jqD2mfMxUSY hFyDMTsxuMlLQebhuIAKz7BI1y2IpiTHpQiI9vHNW4EjLr5k+YMdtdpNGPhrq78mk2Zn OeJi5nDxpzy7pr21Lxb+Si16zXf/iudeiTkT2r6dxiA+gnoUxms8m9YW/O0PqzNR/GAR 7y2SFNi/i83JDoFsdfA8wjDVJz5mmRb4a0YLLsTSuzajHsg9Tv+Woop3v5uSrTTifV3j SjP4chLn8VtPD0wFCsr+qyrApeGH7TzP7aq7LkN0mGMH61006BJpfBIzUnVSEnoKVxVT 1elQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ipbQdlZvw4DX8eeADFuwuSCCWbUfxIxTvY/5lKSg42I=; b=nHYY5aGgmMWhlFCXTpbFcXN2P71h8x901oirsROqhCm3eXlVTQH7RYRuLcfvGdXak4 Q40+hvM5TDnLdWi/9oa+Ngz19h69y77wHidg1T3Qi9y4fJzgsbhmWtP4ok1jowdf0wAD jxnfSmE92QgtNLIEB8yQRJtR+jjS2FSAyXmDv3dYqqtvw8tVWhg6sgELYn1vnf7WIC+j TMyrjgW+FkmiOajOrKjCkv60ZppB8w6GxyCdxc/F7fo/01ZZB/S2lr/DkBgDVhVUZuAZ zXbV3blwXpUrTxo/oG+XrikHGABxYDzDec/czx/qEzwMegEycv4hc2fg14kVe0OXsqif RBYw== X-Gm-Message-State: APjAAAV46p20NVmlqw1JsXg6IDUx6aFQOMlsJnrpPeQaFpYuwiFvwSqF HIg8IrPGODaRi89FKkz9H4cDeQ0ThuoajYeW2z6M3EKJYWM= X-Google-Smtp-Source: APXvYqzUbMkK4jnpN8MwfO9SioT26w/fcfQ9EJaYUIuuabSe1GxYCVd5imTRET9V9LGkV0I7IYt5HlQXvIuIqSV8QxQ= X-Received: by 2002:a5d:948f:: with SMTP id v15mr7377956ioj.93.1561682515420; Thu, 27 Jun 2019 17:41:55 -0700 (PDT) MIME-Version: 1.0 Date: Fri, 28 Jun 2019 02:41:43 +0200 Message-ID: To: PHP Internals Content-Type: multipart/alternative; boundary="000000000000956c69058c578b9b" Subject: Memory leak in eval()'d code From: benjamin.morel@gmail.com (Benjamin Morel) --000000000000956c69058c578b9b Content-Type: text/plain; charset="UTF-8" Hi internals, I've tracked down a memory leak to an anonymous class created within eval(): ``` for ($i = 0; $i < 1000000; $i++) { $object = eval('return new class {};'); if ($i % 1000 == 0) { echo memory_get_usage() . "\n"; } } ``` The memory usage quickly ramps up and memory_limit is reached in seconds. Without eval(), the memory usage stays flat. I'm on 7.3.6. *Is this a bug?* Or is this some inherent limitation of eval() that cannot be fixed? Thanks for any insight. Ben *In case you're wondering (I'm sure you are!), I need this to dynamically create an object that implements an arbitrary number of interfaces , for a schema.org structured data reader library.* --000000000000956c69058c578b9b--