2016-03-03 67 views
-1

我们正在开发一个程序(servise),它使用http请求从用户处获取消息。该程序正在使用Microsoft.Owin.Hosting。 我们的服务最重要的要求之一是具有大量请求的低延迟。因此,我们开始测试发送消息的时间,直到它在我们的服务中被接收和处理。我们注意到一件奇怪的事。发送的第一条消息总是需要比其他消息更长的时间来接收。例如,我们尝试发送1000条10KB的消息,所有消息都需要15到40毫秒才能到达,但第一条消息需要一秒钟。 (如果我们不重启监听器服务,它不会发生,所以我们确定它是监听器,而不是链中的其他部分)。因为它只有第一条信息,我们可以忍受这一点,我们只是好奇它为什么会发生。这是在实施owin托管的东西吗?Microsoft.Owin.Hosting第一条消息

回答

0

是的。需要初始化。什么是问题?这是一个众所周知的事实。在第一次请求时,会发生很多初始化。我认为它在引擎盖下做了很多反思,试图找到控制器。

我实际上考虑发送第一个请求作为启动的一部分,以便在服务启动时处理这个问题 - 这种方式一旦服务正式启动就没有任何延迟。