Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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# 一个乘法运算在两个双精度运算之间需要多长时间?_C# - Fatal编程技术网

C# 一个乘法运算在两个双精度运算之间需要多长时间?

C# 一个乘法运算在两个双精度运算之间需要多长时间?,c#,C#,我有一个需要优化的过程,我想知道两个双精度乘法运算需要多长时间。如果我能切断其中的1000个,我想知道它是否真的会对我的进程的整体性能产生影响?这取决于各种因素,例如,您使用的cpu、当前运行的其他进程、jit的功能 获得此问题答案的唯一可靠方法是使用探查器并测量优化的效果这是高度特定于系统的。在我的系统上,执行1000万次乘法运算只需几毫秒。移除1000可能不会引起注意 如果你真的想优化你的日常生活,这不是最好的方法。更好的方法是对其进行分析,并找出当前实现中可能不是您所期望的瓶颈。然后看看这

我有一个需要优化的过程,我想知道两个双精度乘法运算需要多长时间。如果我能切断其中的1000个,我想知道它是否真的会对我的进程的整体性能产生影响?

这取决于各种因素,例如,您使用的cpu、当前运行的其他进程、jit的功能


获得此问题答案的唯一可靠方法是使用探查器并测量优化的效果

这是高度特定于系统的。在我的系统上,执行1000万次乘法运算只需几毫秒。移除1000可能不会引起注意

如果你真的想优化你的日常生活,这不是最好的方法。更好的方法是对其进行分析,并找出当前实现中可能不是您所期望的瓶颈。然后看看这个瓶颈,试着想出一个更好的算法。首先关注整体算法,并对其进行优化

如果仍然太慢,那么您可以首先尝试在较慢的部分或多次调用的部分中优化实际例程


分析的唯一有效方法是先测量后测量

现代英特尔CPU的处理速度为每秒10亿浮点乘法。如果我是你,我就不会担心1000英镑了。
显示其CPU的FLOP性能完全取决于因素的大小。我可以在几分之一秒内完成一位数乘法,例如7×9,而计算365286×475201则需要几分钟。

这取决于您环境中的许多特定情况。你应该在你的设置上试试。用秒表测量时间跨度。这应该给你一个很好的指标。在测试的多次迭代中,将结果写入CSV文件,然后将其绘制成图形。它应该给你一个很好的指标。你有任何理由相信这些操作是你应用程序的瓶颈吗?1000次乘法不会导致明显的速度提高,除非你每秒进行5000多次以上的1000次乘法。20GFLOPS?我真的很想看看这个号码的来源!即使使用矢量化和多核,我也不知道它怎么会达到这么高。是的,对不起,这里有一个错误的“每个核”。Fixed@Gabe为您添加了英特尔文档的链接抱歉,但该文档指定的是浮点运算,而不是具体的乘法运算。具有128位SIMD寄存器的Intel core可以在每个core的每个周期执行2次双精度乘法。一个20GFLOPS的CPU每秒只能进行100亿次乘法运算。@Gabe如果我有什么不正确的地方,请原谅。你说‘一个英特尔核心…100亿…’。这难道不意味着一个核心2duo将达到20gf吗?开始测量时间,我使用的绘图包似乎有最大的瓶颈。