|
Тема |
Re: dreal.net rulezz [re: Colombino] |
|
Автор | Pжeвckи (Нерегистриран) | |
Публикувано | 20.02.08 12:41 |
|
|
Пришел Ржевский и все опошлил както се казва.
То и едновремешните компилатори имаха акъл да турят литерал. Аз тачно затуй казвам, че ифът е по-бръз.
Са. Имаме:
int x;
float y;
И от тук на сетне вариант 1:
y=(float)(x);
И вариант 2:
if (x==1) y=1;
В първия вариант, ще има обръщение към процедура за преобразуване инт -> флоат. Щото компилатора нема как да знае на колко ще е равно х.
Във втория, ще се зареди директно литерал, демек Н байта от паметта ще се запълнят с 1 представено в дадения формат на дадената флоат поинт.
А ифът при съвременните процесори е бавен само ако на процесора му се наложи да ходи на майната си извън кеша (т.е. да разкара текущото му съдържание и да пълни пак) при условие, че ифът не се изпълни. Т.е. ако ифът заема 100 страници сорс. Реално погледнато е по-вероятно да се случи така, че вариантът у=х да доведе до тази ситуация.
Колкото до:
if ( (a<b) == true )
Предполагам, че се дължи на идиотския стремеж за тотална стандартизация и идиотизация на кодописането.
По същата причина някои много се дразнят като видят:
if (a)
.............
|
| |
|
|
|