代码之家  ›  专栏  ›  技术社区  ›  Bill Karwin

PHP中有多少打开的文件?

  •  4
  • Bill Karwin  · 技术社区  · 14 年前

    有点像 memory_get_usage()

    我正在运行Zend框架的单元测试套件。问题是,在它通过Zend_Search_Lucene的测试之后,随后的测试开始失败。但是如果我跳过Zend_Search_Lucene测试,所有的测试套件都会成功。

    我想证明Zend_Search_Lucene(或任何其他测试套件)正在打开太多文件,并且在自己之后没有清理。我想PHP可能有一个函数来简单地报告打开了多少文件。但是在搜索了20分钟的PHP手册和Google之后,我找不到这样的函数。

    4 回复  |  直到 14 年前
        1
  •  7
  •   Community    7 年前

    PHP中没有这样的函数。

    这可以与PHPUnit的自定义测试监听器相结合-我在另一个问题下描述了这种方法- How to wrap PHPUnit to control command line reporting?

    PHPUnit_Framework_TestListener接口有startTest()、endTest()、starttestsite()、endTestSuite()等方法。您可以从这些方法中执行对lsof的shell-exec调用,并在每个test/testsuite之前和之后打印出有趣的数字。

        3
  •  1
  •   Ionuț G. Stan    14 年前

    我要做的是 unregister 默认的流处理程序,然后 register 我自己的,其中我提供了一个实现 stream_open 有一个内部计数器。

        4
  •  0
  •   Gordon Haim Evgi    14 年前

    这两个可以做你想做的事:

    不过,这是一个疯狂的猜测,因为我从未使用过APD(这是山核桃),所以可能是 资源 resource 键入。不幸的是,我找不到任何显示输出的文档。