Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Thread::Pool::Simple是天生比Thread::Pool慢还是我的错误?_Linux_Perl_Threadpool - Fatal编程技术网

Linux Thread::Pool::Simple是天生比Thread::Pool慢还是我的错误?

Linux Thread::Pool::Simple是天生比Thread::Pool慢还是我的错误?,linux,perl,threadpool,Linux,Perl,Threadpool,我们在最新版本的Ubuntu上构建Thread::Pool时遇到了问题,因此我们重写了代码,改用Thread::Pool::Simple,因为Perl模块是随发行版预先打包的 然而,我们发现,无论池中运行多少线程,它都无法跟上消息负载。事实上,它的运行速度比以前慢了10倍左右 我很快地阅读了Thread::Pool::Simple code,有一件事突然跳了出来:它对yield()进行了大量调用,这在Linux 2.6/3.0系统中是一个可怕的想法 我们的小脚本所做的是从ActiveMQ消息队列

我们在最新版本的Ubuntu上构建Thread::Pool时遇到了问题,因此我们重写了代码,改用Thread::Pool::Simple,因为Perl模块是随发行版预先打包的

然而,我们发现,无论池中运行多少线程,它都无法跟上消息负载。事实上,它的运行速度比以前慢了10倍左右

我很快地阅读了Thread::Pool::Simple code,有一件事突然跳了出来:它对
yield()
进行了大量调用,这在Linux 2.6/3.0系统中是一个可怕的想法

我们的小脚本所做的是从ActiveMQ消息队列读取消息,并将它们处理到我们的数据库系统中。使用Thread::Pool,可以轻松地保持这种状态,进行8db连接并并行写入。对于Thread::Pool::Simple,它一开始似乎可以工作,但队列长度一直在增加,因为它跟不上

其他人有使用这两个版本的Perl线程池的经验吗? 我在使用Thread::Pool::Simple时是否犯了一些明显的错误