自行托管在Mono下运行的简单NancyFX HelloWorld应用程序的延迟问题

时间:2014-11-11 11:11:48

标签: c# mono servicestack nancy self-hosting

背景

我通过在不同条件下运行一个简单的HelloWorld示例来测试NancyFX框架。

public class IndexModule : NancyModule
{
  public IndexModule()
  {
    Get["/"] = _ => "Hello World!";
  }
}

示例似乎在Windows和Linux上运行良好,问题是Mono的响应时间。在Windows下,HTTP响应采用aprox。 3-4ms,而Linux(Mono)下的相同代码总是需要200ms +。经过一些额外的测试(并切换到ServiceStack AppHost)问题仍然存在,所以我的猜测是这与Mono有关。有什么想法吗?

HTTP响应(CentOS 6.5,Mono 3.10)

centos_mono_nancyfx_http_response

测试结果

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

其他

Source code

Profile dump

1 个答案:

答案 0 :(得分:0)

奇怪的是,如果您将反向代理放在自托管应用程序之上,则延迟问题就会消失。

这是使用的nginx proxy_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;
  }
}