Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与普通算法相比,TImeSpan算法需要多少时间?_C#_Performance_Timespan - Fatal编程技术网

C# 与普通算法相比,TImeSpan算法需要多少时间?

C# 与普通算法相比,TImeSpan算法需要多少时间?,c#,performance,timespan,C#,Performance,Timespan,我有一个带有中断的C程序,它处理我希望每40毫秒运行一次的列表的一部分,但是中断中的数学运算可以冻结具有特定大小和属性的列表的程序 我试图通过从数学中删除TimeSpan加法和减法,并在执行算术之前(而不是之后)将它们全部转换为totalmillizes来加快计算速度。有人知道加和减TimeSpans与求总毫秒数加和减TimeSpans的开销是多少吗 谢谢。那是不明智的,Timespan.TotalMillistics是double类型的属性,单位为一毫秒。它与底层结构值高度无关,Ticks是l

我有一个带有中断的C程序,它处理我希望每40毫秒运行一次的列表的一部分,但是中断中的数学运算可以冻结具有特定大小和属性的列表的程序

我试图通过从数学中删除TimeSpan加法和减法,并在执行算术之前(而不是之后)将它们全部转换为totalmillizes来加快计算速度。有人知道加和减TimeSpans与求总毫秒数加和减TimeSpans的开销是多少吗


谢谢。

那是不明智的,Timespan.TotalMillistics是double类型的属性,单位为一毫秒。它与底层结构值高度无关,Ticks是long类型的底层字段的属性获取程序,单位为100纳秒。TotalMillistics属性getter通过一些技巧将long转换为double,它确保来回转换生成相同的数字

这是一个时间跨度的问题,它可以覆盖10000年,精度为100纳秒。然而,一个双精度数字有15个有效数字,这还不足以以这种精度覆盖那么多年。TotalMillistics属性执行舍入,而不仅仅是转换,它确保返回的值精确到一毫秒。不是100纳秒。所以来回转换总是产生相同的值

哪一个有效:10000年x 365.4天x 24小时x 60分钟x 60秒x 1000毫秒=315705600000000毫秒。数一数数字,精确到15,足够精确地存储在一个双精度存储器中,而不会丢失准确性。幸运的巧合,不是吗


回答这个问题:如果你关心速度,那么总是使用滴答声,而不是毫秒。这是一个非常快速的64位整数运算。比整数到浮点+舍入转换快得多。

这是不明智的,Timespan.totalmillizes是double类型的属性,单位为一毫秒。它与底层结构值高度无关,Ticks是long类型的底层字段的属性获取程序,单位为100纳秒。TotalMillistics属性getter通过一些技巧将long转换为double,它确保来回转换生成相同的数字

这是一个时间跨度的问题,它可以覆盖10000年,精度为100纳秒。然而,一个双精度数字有15个有效数字,这还不足以以这种精度覆盖那么多年。TotalMillistics属性执行舍入,而不仅仅是转换,它确保返回的值精确到一毫秒。不是100纳秒。所以来回转换总是产生相同的值

哪一个有效:10000年x 365.4天x 24小时x 60分钟x 60秒x 1000毫秒=315705600000000毫秒。数一数数字,精确到15,足够精确地存储在一个双精度存储器中,而不会丢失准确性。幸运的巧合,不是吗


回答这个问题:如果你关心速度,那么总是使用滴答声,而不是毫秒。这是一个非常快速的64位整数运算。比整数到浮点+四舍五入转换快得多。

引擎盖下的所有内容都已经包含了刻度,如中所示,long result=\u刻度+ts.\u刻度。除了抖动带来的内联,我怀疑您是否会看到任何改进。您不可能在编写此问题的时间内创建一个测试项目来测量这两种方法的迭代次数达到数百万次您可以使用.NET Reflector查看.NET DLL并找出发生了什么。@Brandon和Kirk Yea,我确实对更改进行了测试,没有看到太大的差异,但想知道内部是否存在任何可能揭示原因的情况。@kol,对于框架类来说,这样做更有意义。阅读注释、变量名称等很有趣。所有隐藏在引擎盖下的内容都已经包含了记号,如,long result=_ticks+ts._ticks。除了抖动带来的内联,我怀疑您是否会看到任何改进。您不可能在编写此问题的时间内创建一个测试项目来测量这两种方法的迭代次数达到数百万次您可以使用.NET Reflector查看.NET DLL并找出发生了什么。@Brandon和Kirk Yea,我确实对更改进行了测试,没有看到太大的差异,但想知道内部是否存在任何可能揭示原因的情况。@kol,对于框架类来说,这样做更有意义。有趣的阅读评论、变量名等。早熟优化是万恶之源。这些低级的调整几乎不能提高性能——即使在最复杂的算法交易系统中也是如此。哇,当它计算毫秒数时,我假设它在处理整数或未签名整数
s、 @MonsterTruck你完全正确,我只是不得不重新思考如何限制列表的哪一部分进行迭代,它的时间缩短了80倍。早熟优化是万恶之源。这些低级的调整几乎不能提高性能-即使在最复杂的算法交易系统中也是如此。哇,当它以毫秒数运行时,我还以为它是在处理整数或未签名整数呢。@你完全正确,我只是不得不重新考虑如何限制列表中的哪一部分进行迭代,并将其时间缩短了80倍。