C#程序:x64上的文件I / O随机变慢

时间:2011-02-16 14:57:27

标签: c# sql-server io x86 64-bit

我有一个程序有两种不同的模式,独立模式和客户端 - 服务器模式。它的部分自动化测试框架测试程序计算的数据的文件导入/导出,它将导入/导出超过100次迭代的次数,并将时间结果与某些基线结果进行比较。

测试框架将在x86上测试独立版和主版,然后在x64上测试两者。

最近,我遇到了一个奇怪的问题,其中4个测试中有3个通过,但其中1个测试失败了。失败的这个1总是x64,最有趣的部分是哪个x64测试失败取决于它们运行的​​顺序,即如果独立的x​​64测试先运行而客户端 - 服务器运行第二个,客户端-server最终需要花费更长的时间,但是如果我切换顺序,它将是独立的,需要更长的时间。

第二个兴趣点是这个问题是零星的,即在过去的6天内,它有2次落在基线的适当范围内,但其他时间已经过去了。

我认为这可能是由于硬件上特定时间使用的资源,所以我禁用了所有可能的内容,包括搜索索引,并切换顺序,以便x86测试运行时x86测试用于运行和副反之亦然,但在新时隙中传递的x86测试没问题,而x64测试在x86时间内继续失败。

为了进一步绕过可能的硬盘驱动器问题,我也开始只导入/导出到流而不是文件,但这没有任何区别。

我对这可能导致什么感到困惑。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否在运行测试时捕获了性能计数器(perfmon.exe)?我会检查GC计数器,CPU等等。