相关疑难解决方法(0)

是DateTime.Now是测量函数性能的最佳方法吗?

我需要找到一个瓶颈,并且需要准确地测量时间.

以下代码段是衡量性能的最佳方法吗?

DateTime startTime = DateTime.Now;

// Some execution process

DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
Run Code Online (Sandbox Code Playgroud)

.net c# performance datetime timer

466
推荐指数
14
解决办法
6万
查看次数

Environment.TickCount与DateTime.Now

是否可以Environment.TickCount用来计算时间跨度?

int start = Environment.TickCount;
// Do stuff
int duration = Environment.TickCount - start;
Console.WriteLine("That took " + duration " ms");
Run Code Online (Sandbox Code Playgroud)

因为TickCount已签名并将在25天后翻转(所有32位需要50天,但如果你想对数学有任何意义,你必须废弃已签名的位),看起来它太冒险了.

我正在使用DateTime.Now.这是最好的方法吗?

DateTime start = DateTime.Now;
// Do stuff
TimeSpan duration = DateTime.Now - start;
Console.WriteLine("That took " + duration.TotalMilliseconds + " ms");
Run Code Online (Sandbox Code Playgroud)

.net c# datetime timespan

61
推荐指数
8
解决办法
7万
查看次数

.NET中的高分辨率计时器

我想对我的代码进行一些基本的分析,但发现C#中的DateTime.Now只有大约16毫秒的分辨率.必须有更好的时间保留我尚未找到的构造.

.net profiling timer

33
推荐指数
3
解决办法
2万
查看次数

在Windows中对程序进行基准测试的最佳方法是什么?

我需要在Windows中对.NET程序(C#)做一些性能基准测试,但我还没有在Windows世界中做过很多基准测试.我已经研究过使用带有自定义计数器的Windows 2000/XP性能监视器,但我认为这不是我想要的.

在Windows XP中是否有适用于此的良好系统设施,或者我是否需要使用System.Diagnostics.Stopwatch [编辑]并编写文本日志以进行手动解释,或者还有其他什么?

编辑:除此之外还有什么System.Diagnostics.Stopwatch

.net c# windows performance benchmarking

6
推荐指数
2
解决办法
6403
查看次数

PerformanceCounter的C#替换

我想知道是否存在用于精确时间测量的".net集成"解决方案(如功能的执行时间)?目前我正在使用Kernel32中的PerformanceCounters.

    [DllImport("Kernel32.dll")]
    private static extern bool QueryPerformanceCounter(
        out long lpPerformanceCount);

    [DllImport("Kernel32.dll")]
    private static extern bool QueryPerformanceFrequency(
        out long lpFrequency);
Run Code Online (Sandbox Code Playgroud)

.net c# performancecounter

2
推荐指数
1
解决办法
881
查看次数

如何在C#中测量HashTable的性能?

我正在玩C#集合,我决定编写一个快速测试来衡量不同集合的性能.

我的性能测试是这样的:

int numOps= (put number here);
long start, end, numTicks1, numTicks2;
float ratio;

start = DateTime.Now.Ticks;

for(int i = 0; i < numOps; i++)
{
  //add two elements to collection #1
  //remove one element from collection #1
}

end = DateTime.Now.Ticks;

numTicks1 = end - start;


start = DateTime.Now.Ticks;

for(int i = 0; i < numOps; i++)
{
  //add two elements to collection #2
  //remove one element from collection #2
}

end = DateTime.Now.Ticks;

numTicks2 = end - start; …
Run Code Online (Sandbox Code Playgroud)

c# comparison performance hashtable list

1
推荐指数
1
解决办法
729
查看次数