小编Bap*_*ist的帖子

Php资源id溢出错误

我有一个PHP服务器应用程序收获推文,从而持续运行.此应用程序在几天后开始失败.拒绝返回mysql select语句的结果.我发现这是由于php资源id溢出(PHP警告):

-2147483648不是有效的MySQL结果资源

这意味着应用程序正在耗尽可能的ID以分配给资源变量(因为要触发的查询语句数量非常大).我认为这个问题的答案是在每个mysql select语句下使用mysql_free_result,以便最终释放每个资源.但这并没有解决我的问题.

在某些论坛上,我读到PHP无法重用已发布的资源ID. 这意味着唯一合理的解决方案是重新连接到mysql数据库?

关于我的PHP版本的一些信息:

PHP 5.5.10-1 + deb.sury.org~precision + 1(cli)(内置:2014年3月27日16:18:01)版权所有(c)1997-2014 PHP Group Zend Engine v2.5.0,版权所有(c )1998-2014 Zend Technologies与Zend OPcache v7.0.3,版权所有(c)1999-2014,作者:Zend Technologies

有没有人有这个问题的经验?另一个解决方案是使用mysqli扩展而不是常规扩展吗?

谢谢!

php mysql mysqli

7
推荐指数
1
解决办法
477
查看次数

是否可以使用多处理在一个h5py文件上进行并行读取?

我试图加快从h5py数据集文件中读取块(将它们加载到RAM内存中)的过程.现在我尝试通过多处理库来做到这一点.

pool = mp.Pool(NUM_PROCESSES)
gen = pool.imap(loader, indices)
Run Code Online (Sandbox Code Playgroud)

加载器功能是这样的:

def loader(indices):
    with h5py.File("location", 'r') as dataset:
        x = dataset["name"][indices]
Run Code Online (Sandbox Code Playgroud)

这实际上有时有效(意味着预期的加载时间除以进程数并因此并行化).但是,大部分时间它没有,加载时间只是保持与按顺序加载数据时一样高.有什么办法可以解决这个问题吗?我知道h5py支持通过mpi4py进行并行读/写,但我只想知道这对于只读也是绝对必要的.

python parallel-processing h5py

6
推荐指数
1
解决办法
4619
查看次数

标签 统计

h5py ×1

mysql ×1

mysqli ×1

parallel-processing ×1

php ×1

python ×1