使用Windows Server 2012的Azure VM上的文件写入持续时间

时间:2013-10-31 00:07:48

标签: c# azure io windows-server-2012

我最近不得不记录由于某种原因写文件所花费的时间。我在Azure VM上的Windows Server 2012上执行了此操作。当我查看日志时,大多数时间都是0毫秒,只有极少数是15.something ms。我以为我做了一些测量错误,并用这段代码进行了测试:

class Program
{
    static void Main(string[] args)
    {
        string dir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) + "\\TEST";
        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

        for (int i = 0; i < 10; i++)
        {
            DateTime start = DateTime.Now;
            File.WriteAllText(dir + @"\test.txt", "test");
            DateTime end = DateTime.Now;
            TimeSpan duration = end - start;
            double ms = duration.TotalMilliseconds;
            File.AppendAllText(dir+@"\log.txt", Convert.ToString(ms) + System.Environment.NewLine);
        }
    }
}

在我的PC上输出(操作系统区域设置为德语,因此逗号为小数点,而不是千位分隔符,使第一个数字为5毫秒):

5,0037 1,001 0,9976 1,001 1,001 2,002 0,9956 2,002 1,0003 0,9996

远程机器上的输出:

0 0 0 0 0 0 0 0 0 0

有时候(操作系统区域设置为英文,所以点是小数点,使相关数字为15.5毫秒):

0 0 0 0 0 0 15.4914 0 0 0

这是什么原因?这是Windows Server 2012或Azure VM上的一些写缓存吗?

其他信息:

  • 我的电脑有一个单独的SSD,远程机器配置了OS和单独的驱动器上的数据(不知道是什么类型)

0 个答案:

没有答案