Сравнительная производительность вызова Invoke\Coroutine

Оптимизация кода.

Сравнительная производительность вызова Invoke\Coroutine

Сообщение gnoblin 25 май 2011, 19:51

Вот такой маленький тест (на моем PC) :).

//Invoke empty method by name, 1000 iterations:
// = 0.555 - 0.6 ms

//Launch empty method directly, 1000 iterations
// = 0.125 ms

//Launch empty cor by name, 1000 iterations
// = 2.5 - 3.6 ms

//Launch empty cor directly, 1000 iterations
// = 1.6 - 1.8 ms

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.Diagnostics;

public class PerfTest1 : MonoBehaviour
{
        void Start ()
    {
        Stopwatch stopWatch = Stopwatch.StartNew();
        for (int i = 0; i < 1000; i++)
        {
            //Invoke("Test1", 0f);
            //Test1();
            //StartCoroutine("Test2");
            StartCoroutine(Test2());
        }
        stopWatch.Stop();
        double ms = (stopWatch.ElapsedTicks * 1000.0) / Stopwatch.Frequency;
        UnityEngine.Debug.Log(string.Concat(ms.ToString(), " ms"));          
        }

    void Test1()
    {
 
    }

    IEnumerator Test2()
    {
        yield break;
    }
}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Вернуться в Код

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1