我正在尝试确定最坏情况下的磁盘速度,所以我编写了以下函数.
static public decimal MBytesPerSec(string volume)
{
string filename = volume + "\\writetest.tmp";
if (System.IO.File.Exists(filename))
System.IO.File.Delete(filename);
System.IO.StreamWriter file = new System.IO.StreamWriter(filename);
char[] data = new char[64000];
Stopwatch watch = new Stopwatch();
watch.Start();
int i = 0;
for (; i < 1000; i++)
{
file.Write(data);
if (watch.ElapsedMilliseconds > 2000)
{
break;
}
}
watch.Stop();
file.Close();
System.IO.File.Delete(volume + "\\test.txt");
decimal mbytessec = (i * 64 / watch.ElapsedMilliseconds);
return mbytessec;
}
Run Code Online (Sandbox Code Playgroud)
该函数工作正常,但写入缓存,因此速度不是最坏的情况.
在WIN32 C++中,我只需使用选项创建文件FILE_FLAG_NO_BUFFERING
,FILE_FLAG_WRITE_THROUGH
然后确保遵循非缓存写入规则(以扇区大小偏移写入文件,最少写入4k)
我有2D世界地图,基本上是类似墨卡托的投影,(如果你向西走得足够长,你最终会向东开始)
我有问题:您是否可以使用A*来计算这些类型的地图上的路径?
我想不出你为什么不能这样做的原因(我认为你只是代表边缘图节点,使得北,南,东,周三,"边界"节点简单地连接到另一侧).
在此先感谢,如果有人之前见过这样的东西,或者可以给我一些提示,我会很感激.
我们正在编写一个使用TFS客户端API的自定义工具,连接到TFS,获取项目的工作项等.
我们使用WIQL查询工作项存储.
给定完全限定的文件名,获取包含指定文件的更改集的工作项列表的最简单方法是什么?