我正在实现一个带有rails后端的小型webmail,它与IMAP服务器通信。问题是,当我检索一些原始数据时,如果附件很大(甚至是6/7 mb),那么webrick发送它需要花费很多时间。
如何提高发送"大数据的性能"?有更适合的网络服务器吗?
(我还没有尝试过另一个,因为我还处于开发的早期阶段)
答案 0 :(得分:1)
Webrick绝对不是最好的网络服务器。大多数Rails应用程序使用前端代理(通常是Nginx或Apache)和后端机架兼容的Web服务器(如Unicorn,Puma,Passenger等)的组合。
您可能想要做的是避免Ruby进程发送数据,否则Ruby可能必须将文件加载到内存中。例如,您可以使用send_file
功能直接使用#!/usr/bin/perl
use strict;
use warnings;
my @test1= ("Bob", "Flip", "David");
my @test2= ("Kevin", "John", "Michel");
my @test3= ("Bob", "Flip", "David");
my @test4= ("Haidi", "Grook", "Franky");
my @test5= ("Bob", "Flip", "David");
my @test6= ("Kevin", "John", "Michel");
my @test7= ("Haidi", "Grook", "Frank4");
my %arrayHash= ( "ppl1" => [@test1],
"ppl2"=> [@test2],
"ppl3" => [@test3],
"ppl4"=> [@test4],
"ppl5"=> [@test5],
"ppl6"=> [@test6],
"ppl7"=> [@test7]
);
my %seen;
foreach my $key1 (sort keys %arrayHash){
next unless @{$arrayHash{$key1}};
my @keys;
if(@keys=grep{(@{$arrayHash{$key1}} ~~ @{$arrayHash{$_}} ) && ($_ ne $key1) && (not exists $seen{$key1})}sort keys %arrayHash){
unshift(@keys,$key1);
print "@keys are duplicates \n";
@seen{@keys}=@keys;
}
}
在Rails中支持使用ppl1 ppl3 ppl5 are duplicates
ppl2 ppl6 are duplicates
传递Nginx。