相关疑难解决方法(0)

如何分析在Linux上运行的C++代码?

我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?

c++ unix profiling

1732
推荐指数
12
解决办法
49万
查看次数

计算方法的执行时间

可能重复:
如何测量函数运行的时间?

我有一个I/O计时方法,可以将数据从一个位置复制到另一个位置.什么是计算执行时间的最佳和最实际的方法?ThreadTimerStopwatch?还有其他方法吗?我想要最精确的一个,尽可能简短.

.net c# io timer stopwatch

494
推荐指数
7
解决办法
47万
查看次数

Linq .Any VS.Exists - 有什么区别?

在集合上使用Linq,以下代码行之间有什么区别?

if(!coll.Any(i => i.Value))
Run Code Online (Sandbox Code Playgroud)

if(!coll.Exists(i => i.Value))
Run Code Online (Sandbox Code Playgroud)

更新1

当我反汇编.Exists它看起来没有代码.

更新2

任何人都知道为什么这个没有代码?

c# linq collections

396
推荐指数
6
解决办法
30万
查看次数

测量代码执行时间

我想知道程序/功能/订单需要多长时间才能完成测试.

这是我做的,但我的方法是错误的'因为如果秒的差异为0则无法返回经过的毫秒:

请注意,睡眠值为500毫秒,因此经过的秒数为0,则无法返回毫秒数.

    Dim Execution_Start As System.DateTime = System.DateTime.Now
    Threading.Thread.Sleep(500)

    Dim Execution_End As System.DateTime = System.DateTime.Now
    MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
    DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))
Run Code Online (Sandbox Code Playgroud)

有人能告诉我更好的方法吗?也许有一个TimeSpan

解决方案:

Dim Execution_Start As New Stopwatch
Execution_Start.Start()

Threading.Thread.Sleep(500)

MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
       "M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
       "S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
       "MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
       "Code execution time", MessageBoxButtons.OK, …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net datetime timespan

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

秒表与使用System.DateTime.Now进行计时事件

我想跟踪我的代码的性能,所以我使用了存储开始和结束时间System.DateTime.Now.我将两者之间的差异作为执行代码的时间.

我注意到差异似乎并不准确.所以我尝试使用一个Stopwatch对象.事实证明,这更加准确.

谁能告诉我为什么Stopwatch比计算开始和结束时间之间的差异更准确System.DateTime.Now

顺便说一句,我不是说百分之十.我得到了大约15-20%的差异.

c# performance datetime timing stopwatch

91
推荐指数
3
解决办法
6万
查看次数

测量函数执行时间的最佳方法是什么?

显然我能做到DateTime.Now.After- DateTime.Now.Before但必须有更复杂的东西.

任何提示赞赏.

c# performance benchmarking execution-time

84
推荐指数
3
解决办法
12万
查看次数

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秒表 - 性能损失

可能重复:
DateTime.Now是测量函数性能的最佳方法吗?
秒表与使用System.DateTime.Now进行计时事件

我的代码需要尽可能快地运行.为了能够记录执行时间,我使用了秒表类.我怀疑,秒表可能会以糟糕的方式影响表现.也许使用DateTime差异可能更有效?

你认为哪一个有更好的表现?

Stopwatch sw = new Stopwatch();
sw.Start();
int a = 5;

// Critical lines of code

long elapsedMs = se.Elapsed.TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)

要么

DateTime startDate = DateTime.Now;
int a = 5;

// Critical lines of code

long elapsedMs = DateTime.Now.Subtract(startDate).TotalMilleseconds;
Run Code Online (Sandbox Code Playgroud)

.net c# stopwatch

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

如何衡量.NET中的代码性能?

我正在使用DateTime对一行C#代码进行一些真正的快速和脏的基准测试:

long lStart = DateTime.Now.Ticks;
// do something
long lFinish = DateTime.Now.Ticks;
Run Code Online (Sandbox Code Playgroud)

问题在于结果:

Start Time [633679466564559902]
Finish Time [633679466564559902]

Start Time [633679466564569917]
Finish Time [633679466564569917]

Start Time [633679466564579932]
Finish Time [633679466564579932]

...等等.

鉴于开始和结束时间相同,Ticks显然不够精细.

那么,我怎样才能更好地衡量绩效呢?

.net performance benchmarking

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

ElapsedTicks,ElapsedMilliseconds,Elapsed.Milliseconds和Elapsed.TotalMilliseconds之间的区别?(C#)

我在这些之间完全感到困惑4.ElapsedMilliseconds(long),ElapsedTicks(long),Elapsed.TotalMilliseconds(double)和Elapsed.Milliseconds(int)之间有什么区别?

我有一个功能

    {
        Stopwatch sw = new Stopwatch();

        sw.Start();
        MyTimeConsumingAction();
        sw.Stop();

        sw.//what?
    }
Run Code Online (Sandbox Code Playgroud)

如何从秒表对象的已用属性(以毫秒为单位)获取长时间运行的进程所消耗的正确时间?

编辑:我试过msdn文档,但它没有详细说明..

c# performance system.diagnostics stopwatch .net-4.0

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