![](/img/trans.png)
[英]How to Deploy a website to Windows Azure with Sql server Compact file in App_data in VS2012
[英]File Write Duration on Azure VM with Windows Server 2012
由于某种原因,我最近不得不记录写入文件所花费的时间。 我是在Windows Server 2012的Azure VM上执行此操作的。 当我查看日志时,大多数时间是0毫秒,只有极少数时间是15毫秒。 我以为自己在测量中做错了什么,并用这段代码进行了测试:
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
有时(OS语言环境设置为英语,所以点是小数点,因此相关数字为15.5毫秒):
0 0 0 0 0 0 15.4914 0 0 0
是什么原因呢? 这是Windows Server 2012还是Azure VM上的某些写缓存?
附加信息:
您正在哪个驱动器上进行测试? 操作系统驱动器/临时驱动器/附加驱动器...很重要。 正如您提到的,缓存设置也很重要,最好从附加驱动器开始,不要设置缓存。
驱动器的ALU格式大小很重要。 例如,如果将文件分成64kb的块,并具有64kb的读/写速度,则速度更快。
存储帐户上的Azure驱动器有一个20分钟的预热阶段,在此阶段可以将它们“缓慢地”统一化或在20分钟内不使用时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.