Perl CGI脚本执行时间超过3秒

时间:2017-03-23 12:52:53

标签: mongodb apache perl perl-module

我正在尝试使用git rev-listPerlMongoDB创建一个简单的API。

我的操作系统为Mojolicious,我正在使用Windows 10。 HTTP Server是WAMP捆绑包中的Apache。

PHP脚本可立即运行。

但Perl脚本的执行时间超过3秒,有时甚至超过5秒。

这是我的剧本

Strawberry Perl

所以这不是一个复杂的剧本。

但相比之下,此脚本的执行时间小于#!c:\strawberry\perl\bin\perl.exe use Mojolicious::Lite; use MongoDB; use JSON; use MongoDB::OID; use Data::Dumper; use CGI; use CGI::Carp qw(warningsToBrowser fatalsToBrowser); # Declare DB connection variables my $DB_HOST = 'mongodb://127.0.0.1'; my $DB_PORT = '27017' ; my $mongo_client = MongoDB::MongoClient->new(host => "$DB_HOST", port => "$DB_PORT"); my $bank_db = $mongo_client->get_database( 'bank' ); get '/clients/' => sub { my $self = shift; my $clients = $bank_db->get_collection('clients')->find; my @out_clients = (); while (my $client = $clients->next) { $client->{'_id'} = MongoDB::OID->new($client->{'_id'})->to_string; push(@out_clients,$client); } if (@out_clients) { my $response = generate_resposne(\@out_clients,"success"); $self->render(json => $response,status => 200); } else { $self->render(json => 'Clients not found',status => 404); } };

30ms

此脚本大约需要1秒

#!c:\strawberry\perl\bin\perl.exe 
print "Content-Type: text/html\n";
print "\n";
print "<html><head></head><body>
<form action='/index.pl'>
<input type='text' name='name'>
<input type='submit'>
</form>
</body></html>";

这些模块有什么问题?这样一个简单的脚本需要花费很多时间来执行。

请建议如何解决问题。正如我之前提到的,PHP可以立即发挥作用。

更新

#!c:\strawberry\perl\bin\perl.exe print "Content-Type: text/html\n"; print "\n"; print "<html><head></head><body> <form action='/index.pl'> <input type='text' name='name'> <input type='submit'> </form> </body></html>"; use MongoDB; my $DB_HOST = 'mongodb://127.0.0.1'; my $DB_PORT = '27017' ; my $mongo_client = MongoDB::MongoClient->new(host => "$DB_HOST", port => "$DB_PORT"); my $bank_db = $mongo_client->get_database( 'bank' ); my $clients = $bank_db->get_collection('clients')->find; print $clients;

的结果

enter image description here

RAND_poll有什么问题?

0 个答案:

没有答案