C# 自托管在Mono下运行的简单NancyFX HelloWorld应用程序的延迟问题
背景 我通过在不同条件下运行一个简单的HelloWorld示例来测试NancyFX框架C# 自托管在Mono下运行的简单NancyFX HelloWorld应用程序的延迟问题,c#,mono,
servicestack,nancy,self-hosting,C#,Mono,
servicestack,Nancy,Self Hosting,背景 我通过在不同条件下运行一个简单的HelloWorld示例来测试NancyFX框架 public class IndexModule : NancyModule { public IndexModule() { Get["/"] = _ => "Hello World!"; } } 这个例子在Windows和Linux上都运行良好,问题是Mono的响应时间。在Windows下,HTTP响应采用近似值。3-4ms,而Linux(Mono)下的相同代码总是需要200m
public class IndexModule : NancyModule
{
public IndexModule()
{
Get["/"] = _ => "Hello World!";
}
}
这个例子在Windows和Linux上都运行良好,问题是Mono的响应时间。在Windows下,HTTP响应采用近似值。3-4ms,而Linux(Mono)下的相同代码总是需要200ms+。经过一些额外的测试(并切换到ServiceStack AppHost)后,问题仍然存在,因此我猜测这与Mono有关。有什么想法吗
HTTP响应(CentOS 6.5、Mono 3.10)
测试结果
OS Runtime Response time Location
Windows 7 .NET 4.5.1 3ms Local
CentOS 6.5 Mono 3.10 200ms Local
Ubuntu 12.04 LTS Mono 2.10.8.1 295ms Remote
其他
奇怪的是,如果在自托管应用程序的顶部放置反向代理,延迟问题就会消失 以下是使用的nginx proxy\u pass配置:
# /etc/nginx/virtual.d/nancydemo.conf
server {
listen 80;
server_name nancydemo.local;
root /media/sf_dev/nancydemo/bin/Debug;
location / {
proxy_pass http://127.0.0.1:1234;
}
}
我不认为这会有任何区别,但请看线程。这里的Sleep(infinite)@Jon没有任何区别。Nancy self host并不是真的要自己使用的。它实际上只用于测试和低使用率。除此之外,它还应该有一个web服务器来处理apache或nginx之类的连接。