Perl提高了生成1像素图像的性能

时间:2016-02-06 06:21:59

标签: perl nginx

嗨我需要在perl中生成1x1像素图像,这可能是生成此图像的最快方法。假设我的网络服务器每秒将获得10K连接。

目前我正在使用它:

print MIME::Base64::decode("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABGdBTUEAALGPC/xhBQAAAAZQTFRF////AAAAVcLTfgAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0gQCEx05cqKA8gAAAApJREFUeJxjYAAAAAIAAUivpHEAAAAASUVORK5CYII=

我无法托管静态文件,因为我们需要处理某些数据的请求。

由于 Kathiresh Nadar

1 个答案:

答案 0 :(得分:2)

首先,对于高性能perl,您应该使用fastcgi(直接通过FCGI模块,或CGI::Fast包装器)或mod-perl或其他一些技术来使您的脚本保持不变记忆中的持久过程。

其次,如果您首先处理对某些其他数据的请求,并且涉及写入文件或与数据库或类似内容交谈等任何内容,那么您的时间将受到该处理的支配。生成图像并不是缓慢的部分。

但是,无论如何,让我们回答您的问题:假设您正在使用一些保留内存中的脚本技术,那么您可以做的第一件事就是将MIME::Base64::decode调用转移到{ {1}}阻止,将结果存储在变量中,并使用该变量。

但是,通过线路发送图像可能需要比服务器上的处理更长的时间,所以为什么在发送42字节的GIF时发送1​​67字节的PNG?将这两条建议放在一起,你得到:

BEGIN