小编Sub*_*net的帖子

PHP和Mongo - findOne()会导致内存耗尽

我的PHP memory_limit是64M(开始时相当高)

我在我的PHP代码中调用了MongoCollection :: findOne(),我在MongoId中"找到一个".它适用于大多数情况.但是在某些情况下,它会导致PHP超过64M的memory_limit.

Mongo中的数据记录最大为3.5MB,因为Mongo不允许超过4MB.

当我在调用findOne()之前运行memory_get_usage()时,它只有大约4MB.所以findOne()似乎消耗了其他60MB +.这是内存泄漏还是我在Mongo中存储的方式存在设计缺陷?

我的PHP Mongo驱动程序是最新的1.26

php mongodb

12
推荐指数
1
解决办法
1219
查看次数

fopen和获取系统文件描述符

我想在使用open打开文件时获取返回资源的系统文件描述符.我假设描述符是一个INT值,通常在/ dev/fd /内

我知道我可以通过执行以下操作来读取描述符:

fread("php://fd/$descriptor", $buflen);
Run Code Online (Sandbox Code Playgroud)

但现在我想获取由PHP fopen()打开的资源的描述符.有办法吗?

php fopen file file-descriptor

5
推荐指数
1
解决办法
3562
查看次数

异常捕获:什么时候不抓住它们?

我在PHP的Zend Framework中为我的应用程序编写了一些小型库(一堆类).我也一直在库的方法本身捕获这些异常并将它们记录到文件中.

然后我突然遇到了一个问题,即我的主要应用程序使用这些库不会因为错误而退出,即使在我希望它们因致命错误而退出的情况下也是如此.这个问题是下面的代码一直执行到最后 - 它不应该有.

看起来捕获并且可能记录库类中的大多数错误(特殊情况除外)似乎不是一个好习惯.他们应该总是抛出错误吗?这是一个正确的假设吗?

如果有人能为我解答,我会很感激.

php oop zend-framework exception

4
推荐指数
1
解决办法
232
查看次数

标签 统计

php ×3

exception ×1

file ×1

file-descriptor ×1

fopen ×1

mongodb ×1

oop ×1

zend-framework ×1