![]() |
Цитата:
Слушай, ты че плозхо соображеаешь что ли:) " если условие взято в скобки и все переменные просчитаны, то компилятор будет условие в скобках принимать за "1 переменную", не просчитывать " т.е. Вариант1. dist=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); По твоему всказываению это равносильно. созданию двух переменных 1.x2-x1 2.y2-y1 Вариант2 dist=Math.sqrt((x2-x1)*(x2-x1)+(x2-x1)*(x2-x1)); А в этом вариете только одной (x2-x1) т.е. по сути экономии в вычитание и созданию как ты говоришь виртуальной скобочной переменной. Но работаю одинаково , так то что ты там сказал это чушь полная. Значение переменных не важно здесь. |
Я плохо знать как экшен скрипт создаёт переменные(какого они типа и как он разбирает их тип),но в с++ можно указать её конкретный тип(int,double,char)и сэкономить в некоторых случаях память(int-4 байта,double-8 байт),а также исключить запихивания в переменную типа int значение типа char...
|
Цитата:
|
Цитата:
я про разницу во времени. |
мне кажется(перекрестился),что флэш так тормозит оттого что он почти полностью автоматизирован,чтобы народ не парился...:)
в том же с++ чтобы создать массив содержащий разные типы нужно создать либо структуру либо класс,а флэш он ,наверно, делает это автоматически,даже когда в массиве данные одного типа(массив это к примеру) |
2iNils
Ну через геттаймер проверь. s=getTimer(); for(i=1;i<=10000;i++){ x1=random(50000); x2=random(50000); y1=random(50000); y2=random(50000); dist=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); } trace(getTimer()-s); ------------------------------------------- s=getTimer(); for(i=1;i<=80000;i++){ x1=random(50000); x2=random(50000); y1=random(50000); y2=random(50000); dx=x2-x1; dy=y2-y1; dist=Math.sqrt((dx)*(dx)+(dy)*(dy)); } trace(getTimer()-s); |
Цитата:
1. 13 _push "dx"/*Dic[4]*/, "x2"/*Dic[2]*/ 14 _getVariable 15 _push "x1"/*Dic[0]*/ 16 _getVariable 17 _subtract 18 _setVariable 19 _push "dy"/*Dic[5]*/, "y2"/*Dic[3]*/ 20 _getVariable 21 _push "y1"/*Dic[1]*/ 22 _getVariable 23 _subtract 24 _setVariable 25 _push "dist"/*Dic[6]*/, "dx"/*Dic[4]*/ 26 _getVariable 27 _push "dx"/*Dic[4]*/ 28 _getVariable 29 _multiply 30 _push "dy"/*Dic[5]*/ 31 _getVariable 32 _push "dy"/*Dic[5]*/ 33 _getVariable 2. 13 _push "dist"/*Dic[4]*/, "x2"/*Dic[2]*/ 14 _getVariable 15 _push "x1"/*Dic[0]*/ 16 _getVariable 17 _subtract 18 _push "x2"/*Dic[2]*/ 19 _getVariable 20 _push "x1"/*Dic[0]*/ 21 _getVariable 22 _subtract 23 _multiply 24 _push "y2"/*Dic[3]*/ 25 _getVariable 26 _push "y1"/*Dic[1]*/ 27 _getVariable 28 _subtract 29 _push "y2"/*Dic[3]*/ 30 _getVariable 31 _push "y1"/*Dic[1]*/ 32 _getVariable 33 _subtract как видите хотя операции разные, их количество одинаково |
Цитата:
А во флеше ты можешь например булеан создать так он в себе уже будет внутри содержать непонятную сруктуру и непонятно сколько памяти. Но зато все просто. Ты можешь на лету из булеана сделать целый супер объект с громадной вложеннолстью. |
Цитата:
и кстати, не корректно первую функцию 10000 запускать, а вторую 80000 :) |
хмм...а нельзя ли принудительно сделать переменную только такого типа какого мне надо?
|
| Часовой пояс GMT +4, время: 23:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.