gpt4 book ai didi

c# - Mathf.Floor 与 (int) 在性能上的对比

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:54 25 4
gpt4 key购买 nike

当我想知道哪个更快时,我正在创建和翻译一些算法?

a) (int)float

b) Mathf.FloorToInt(float)

提前致谢。

编辑:如果有比这两种方法更快的方法,那也会有帮助。

最佳答案

像我提到的那样用秒表做一个测试。这个答案在这里是因为我相信你的答案中的结果是错误的。

下面是一个使用循环的简单性能测试脚本,因为您的算法涉及很多循环:

void Start()
{

int iterations = 10000000;

//TEST 1
Stopwatch stopwatch1 = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++)
{
int test1 = (int)0.5f;
}
stopwatch1.Stop();

//TEST 2
Stopwatch stopwatch2 = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++)
{
int test2 = Mathf.FloorToInt(0.5f);
}
stopwatch2.Stop();

//SHOW RESULT
WriteLog(String.Format("(int)float: {0}", stopwatch1.ElapsedMilliseconds));
WriteLog(String.Format("Mathf.FloorToInt: {0}", stopwatch2.ElapsedMilliseconds));
}

void WriteLog(string log)
{
UnityEngine.Debug.Log(log);
}

输出:

(int)float: 73

Mathf.FloorToInt: 521

(int)float 显然比 Mathf.FloorToInt 快。像这样的东西,用Editor Stats的FPS来判断真的不好。您使用 秒表 进行测试。编写着色器代码时应使用 FPS。

关于c# - Mathf.Floor 与 (int) 在性能上的对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46540698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com