首次请求时Amazon SimpleDB高延迟

时间:2011-02-17 18:32:45

标签: c# .net amazon-web-services amazon-simpledb

我在桌面应用程序(C#,.NET 2.0)中使用SimpleDB,并且存在高延迟问题  我第一次向DB发出请求(查询,插入值 - 无关紧要)我只在大约10-20秒后得到响应。这种情况仅在第一次发生时,其余的响应非常快(没有测量,但肯定在300ms以下) 当我创建数据库客户端时,只有在我执行第一个请求时才会发生这种情况。身份验证是否正常缓慢? (我认为在第一次请求身份验证完成时)。

提前致谢。

修改

当我第一次跑步时

SelectResponse response = dbService_.Select(request);
输出面板中的

我得到:

'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded'C:\Windows\assembly\GAC_MSIL\System.Data.SqlXml\2.0.0.0__b77a5c561934e089\System.Data.SqlXml.dll'
'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded 'System.Xml.Xsl.CompiledQuery.1'
'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded 'System.Xml.Xsl.CompiledQuery'
 A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
'PhotoExchange.vshost.exe' (Managed (v2.0.50727)): Loaded 'rg1d4wjc'  

这是正常的吗? FileNotFoundException 看起来很奇怪。

5 个答案:

答案 0 :(得分:4)

听起来有些东西超时,然后默默地转到成功的第二个频道,然后缓存后续呼叫。首先怀疑? DNS,可能。我检查你的工作站的TCP / IP设置,看看你的主DNS服务器是否启动,或者用Google's Public DNS替换为8.8.8.8和8.8.4.4

答案 1 :(得分:1)

可能是WebProxy检测(我假设您使用的.NET客户端只是Web服务的包装器。)

查看是否可以在服务包装器使用的WebClient上禁用/清空WebProxy属性。

答案 2 :(得分:0)

猜测,你是在运行时从WSDL动态构建服务客户端 - 虽然我不确定它应该那个长。

相反,您可以通过在Visual Studio中添加Web服务引用或使用svcutil.exe(等效的命令行实用程序)来提前将其构建到项目中。

答案 3 :(得分:0)

.NET执行Just in time (JIT)编译(在首次运行时编译代码),在第一次迭代时总是速度惩罚(尽管10-20秒似乎很大)。

我从未使用过它们,但是有像ngen这样的工具可以让你事先编译代码。

在我不能允许第一次迭代变慢的应用程序中,我通常通过在我的关键路径中运行“虚拟”数据来初始化应用程序。

问题可能还有其他原因,但我会对此进行调查。

希望有帮助

答案 4 :(得分:0)

我的Windows / .NET安装可能有问题。 我从SDK中取样,编译它(甚至使用NGEN)并在第一次请求时延迟约30秒。我将相同的可执行文件复制到虚拟机,延迟时间 5秒。还是很大,但这是可以接受的。