Войти
ПрограммированиеФорумОбщее

Что быстрее

Страницы: 1 2 39 10 Следующая »
#0
16:11, 19 июля 2009

Прошу прощения, если обсуждалось ранее... В общем вопрос такой:
Что быстрее:

bool CollisionCircleVsCircle(Object &object1, Object &object2)
{
...
//тут проверка, где берется сумма радиусов object1.radius+object2.radius
...
}
или это
bool CollisionCircleVsCircle(float *x1, float *y1, float *radius1, float *x2, float *y2, float *radius2)
{
...
}

Т.е. в 1 варианте я передаю ссылки на 2 объекта (круга), а во 2 варианте я передаю указатели на параметры этих самых кругов...


#1
16:14, 19 июля 2009

Capcha
Проверить не?

#2
16:20, 19 июля 2009

X512
Не подскажешь тогда функцию для получения текущего времени в миллисекундах... Где-то попадалась.

#3
16:21, 19 июля 2009

А что тут собственно проверять. Во втором способе при передачи параметров, время занимать будет уже сама операция обращения к этим самым параметрам из объекта. К тому же 1-й способ более концептуально правилен.

#4
16:22, 19 июля 2009

Capcha
> Не подскажешь тогда функцию для получения текущего времени в миллисекундах...
> Где-то попадалась.
Вот, держи:

double getDeltaTime()
{
    double deltaTime;
    static __int64 gTime,gLastTime=0;
    __int64 freq;
    QueryPerformanceCounter((LARGE_INTEGER *)&gTime);  // Get current count
    QueryPerformanceFrequency((LARGE_INTEGER *)&freq); // Get processor freq
    if (!gLastTime) gLastTime=gTime;
    deltaTime = (double)((double)(gTime - gLastTime)/(double)freq);
    gLastTime = gTime;
    return deltaTime;
}
Где-то на форуме давно нашёл.
#5
16:24, 19 июля 2009

X512
Спасибо, буду пробовать!

#6
16:55, 19 июля 2009

А зачем передавать указатели на float вместо самих float?
Второй вариант медленнее (потому что надо доставать шесть указателей со стека вместо двух).
Разница - 1-2% максимум.

#7
17:14, 19 июля 2009

Компилятор это, скорее всего, все равно заинлайнит и разницы не будет.

#8
20:51, 19 июля 2009

Аргх.
http://macton.smugmug.com/gallery/8936708_T6zQX/1/593426709_ZX4pZ… 3426709_ZX4pZ

#9
21:47, 19 июля 2009

Z
Посмотрел по ссылке. Ужас, и этот человек думает, что он кого-то учит.

#10
22:50, 19 июля 2009

Capcha
Где-то я читал что передавать отдельными переменными правильнее чем классами и структурами.
Но мне кажется что это не сильно снижает производительность, хотя это нужно на уровне Asm'а смотреть.

>Не подскажешь тогда функцию для получения текущего времени в миллисекундах... Где-то попадалась.
GetTickCount(), timeGetTime()

#11
23:19, 19 июля 2009

OberMeister
Если не больше 2-3 32-bit input переменных, то оптимальнее передавать по отдельности, есть вероятность что они окажутся в регистрах или как immediate value. Если их больше, то ссылка или указатель на класс лучше. Это для IA32.

#12
0:12, 20 июля 2009

red noise
Раскрой мъсль про человека.

#13
0:34, 20 июля 2009

Z
Он критикует совершенно нормальный код, предъявляя к нему абсурдные претензии и предлагая взамен чудовищно ужасные решения, и в таком тоне, будто все вокруг неучи и писать не умеют, а вот он сейчас всем раскрывает глаза... Или это все шутка такая, вроде http://typicalprogrammer.com/?p=8 ?? Если так, то все равно довольно глупо.
Форма подачи материала тоже свидетельствует о, скажем так, нетрадиционном мировосприятии автора.

#14
0:51, 20 июля 2009

red noise
тон ты очевидно не понял, не такой он. код отвратный, не менее очевидно. очевидно что собираюца юзать в тонком месте, там так пейсать нельзя. можно как тот мик пишет.

Страницы: 1 2 39 10 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.