Math
• Add, subtract, multiply: a couple cycles
• Divide: 30-40 cycles
*0.5f в 20 раз быстрее чем /2
Math
• Add, subtract, multiply: a couple cycles
• Divide: 30-40 cycles
using UnityEngine;
using System.Collections;
public class TestMul : MonoBehaviour
{
void Test()
{
{
float k = 0;
float startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 1000000; i++)
k = i / 2;
Debug.Log("div int: " + (Time.realtimeSinceStartup - startTime));
float L = k;
}
{
float k = 0;
float startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 1000000; i++)
k = i * 0.5f;
Debug.Log("mul int: " + (Time.realtimeSinceStartup - startTime));
float L = k;
}
{
float k = 0;
float startTime = Time.realtimeSinceStartup;
for (float i = 0; i < 1000000; i++)
k = i / 2;
Debug.Log("div float: " + (Time.realtimeSinceStartup - startTime));
float L = k;
}
{
float k = 0;
float startTime = Time.realtimeSinceStartup;
for (float i = 0; i < 1000000; i++)
k = i * 0.5f;
Debug.Log("mul float: " + (Time.realtimeSinceStartup - startTime));
float L = k;
}
}
void FixedUpdate()
{
Test();
}
}
Woolf писал(а):Хы.. Ну вы прям с луны свалились. Вообще, лучше всего не использовать дробные числа, а работать исключительно с целыми, а для деления и умножения использовать бинарные сдвиги.
sp00n писал(а):последние, как минимум, пять лет процессоры очень хорошо считают дробные числа приблизительно с той же скоростью, что и целые.
Если же люди разрабатываю мультиплатформенные приложения с расчетом на тот же Андроид, то какбэ должны знать, что там и как. Да и не только Андроиды, возьмем к примеру Интел атом для нетбуков первой серии - это ж млин по архитектуре тот же Pentium 90 только на новой производственной технологии и с некоторыми дополнительными фичами - вот тут, например, нужна оптимизация операций с плавающей запятой. Хотя на те атомы больше стаят линукс, так как винда страшно глючит. Более поздние версии намного лучше и мой сервер, например, работающий с 1000 клиентами онлайн и переганяющий туда-сюда медиа-данные успешно работает на таком устройстве до сих пор:) При чем активно используя операции с плавающей запятой - я бы, может, и поменял на фиксированную арифметику, но глянув на спеки проца понял что выигрыш будет меньше 1%, не так как у более ранних версий. К чему это я - вот, кажись, ХТЦ выпустила новый андроид девайс с новым арм процессором - там спеки тоже весьма хорошие и фпу замечательный есть - появится у нас - скорее всего куплю Через год-два у 90% потенциальных обладателей андроидфона будет приличный фпу имхо.Оптимизация такого рода, имхо, нужна только для мобильных девайсов
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1