sin我正在学习 Java,并对( cos) 方法的工作原理很感兴趣。我注意到在 j 上获取正弦的速度因函数参数而异。如果角度小于 0.785...rad,则计算速度很快,如果大于 - 则计算速度较慢。
与 C# 相比,结果恰恰相反:
以毫秒为单位检查 1000 万次正弦计算。
为什么会是这样的结果?
这是从 0 到 4*pi 的 java 余弦/正弦的结果:
public static void main(String[] args) {
long a;
for (double x = 0; x < 4 * Math.PI; x = x + 0.05) {
a = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
//Math.cos(x);
Math.sin(x);
}
System.out.printf("%.6f, %d \n", x, (System.currentTimeMillis() - a));
}
}
这是 C# 余弦/正弦从 0 到 4*pi 的结果:
public static void Main(string[] args)
{
for (double x = 0; x < 4 * Math.PI; x = x + 0.05) {
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 10000000; i++) {
Math.Cos(x);
// Math.Sin(x);
}
sw.Stop();
Console.WriteLine(x +" - " +(sw.ElapsedMilliseconds).ToString());
}
}


