写入文件C#时记录mb /秒

时间:2016-03-22 16:02:14

标签: c#

我创建了一种方法来记录写文件所需的总时间。

如何扩展它以记录方法每秒向StringBuilder对象写入多少兆字节?我正在传递GB

  private string CreateLongRunningDummyFile(int fileSizeGb, string filePath)
        {
            StringBuilder sb=new StringBuilder();

            Stopwatch sw = new Stopwatch();
            sw.Start();

            int fileSizeMb = fileSizeGb * 1024;

            try
            {
                const int blockSize = 1024 * 8;
                const int blocksPerMb = (1024 * 1024) / blockSize;
                byte[] data = new byte[blockSize];
                Random rng = new Random();
                using (FileStream stream = File.OpenWrite(filePath))
                {
                    // There 
                    for (int i = 0; i < fileSizeMb * blocksPerMb; i++)
                    {
                        rng.NextBytes(data);
                        stream.Write(data, 0, data.Length);
                    }
                }

                sw.Stop();

                File.Delete(filePath);

            }
            catch (Exception ex)
            {

                sw.Stop();
            }

            sb.AppendLine(string.Format("Elaspsed Time: {0}sec",sw.Elapsed.TotalSeconds.ToString()));

            return sb.ToString();
        }

1 个答案:

答案 0 :(得分:0)

做一些数学

var rate = fileSizeGb / 1024 / sw.Elapsed.TotalSeconds;