AS3: uint на много медленнее, чем Number
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 |
From: "Valentin Simonov" <valy...@gmail.com>
Date: Fri, 11 Jan 2008 15:29:00 +0600
Subject: AS3: uint на много медленнее, чем Number
Hi. Наткнулся тут на http://www.gskinner.com/blog/archives/2006/06/types_in_as3_in.html И действительно, uint в циклах просто ужасно отстает по производительности. var n = getTimer() for (var i:Number = 0; i < 16777215; i++){} trace("Number", getTimer()-n) n = getTimer() for (var j:int = 0; j < 16777215; j++){} trace("int", getTimer()-n) n = getTimer() for (var k:uint = 0; k < 16777215; k++){} trace("uint", getTimer()-n) у меня трейсит Number 85 int 78 uint 239 а я как дурак в своём флексовом проекте везде uint понавставлял ...
You must Sign in before you can post messages.
You do not have the permission required to post.
|
 |
From: Denis Kolyako <e...@timezero.ru>
Date: Fri, 11 Jan 2008 12:35:40 +0300
Local: Fri, Jan 11 2008 4:35 am
Subject: Re: [ruFlash] AS3: uint на много медленнее, чем Number
Здравствуйте, Valentin. > а я как дурак в своём флексовом проекте везде uint понавставлял
var n = getTimer() for (var i:Number = 0; i < 16777215; i+=1){} trace("Number", getTimer()-n) // 166 n = getTimer() for (var j:int = 0; j < 16777215; j+=1){} trace("int", getTimer()-n) // 91 n = getTimer() for (var k:uint = 0; k < 16777215; k+=1){} trace("uint", getTimer()-n) // 91 Денис Коляко ______________________________________________________________________ e...@timezero.ru | http://etcs.ru/ | http://www.timezero.ru/
You must Sign in before you can post messages.
You do not have the permission required to post.
|
 |
From: Racer <ra...@eteam.ru>
Date: Fri, 11 Jan 2008 02:09:28 -0800 (PST)
Local: Fri, Jan 11 2008 5:09 am
Subject: Re: AS3: uint на много медленнее, чем Number
ВАУ.
++ :
Number 84
int 73
uint 234
+=1
Number 82
int 58
uint 49
НО ПОЗВОЛЬТЕ! Это же ужастно!
You must Sign in before you can post messages.
You do not have the permission required to post.
|
 |
From: Nox Noctis <n...@noregret.org>
Date: Fri, 11 Jan 2008 13:18:43 +0300
Local: Fri, Jan 11 2008 5:18 am
Subject: Re: [ruFlash] Re: AS3: uint на много медленнее, чем Number
> ++ : > Number 84 > int 73 > uint 234 > +=1 > Number 82 > int 58 > uint 49
думаю, все дело в том, какой тип имеет единица. в случае ++ мы складываем два значения одного типа (происходит дублирование элемента в стеке). а в случае с += мы складываем исходный тип с константой типа int. import flash.utils.getTimer; var a:uint = 0; var b:uint = 1; var s:uint = getTimer(); for (var i:int = 0; i<0xFFFFFF; i+=1) { a += b; }
trace(getTimer()-s); // 215 var c:uint = 0; var d:int = 1; s = getTimer(); for (i = 0; i<0xFFFFFF; i+=1) { c += d; }
trace(getTimer()-s); // 70 -- Michael Antipin ______________________________________________________________________ n...@design.ru | http://www.artlebedev.ru | http://www.noregret.org
You must Sign in before you can post messages.
You do not have the permission required to post.
|
 |
From: "Valentin Simonov" <valy...@gmail.com>
Date: Fri, 11 Jan 2008 16:34:13 +0600
Local: Fri, Jan 11 2008 5:34 am
Subject: Re: [ruFlash] Re: AS3: uint на много медленнее, чем Number
Hi. Занятно, я не знал. Век живи, век учись (8
> ++ : > > Number 84 > > int 73 > > uint 234 > > +=1 > > Number 82 > > int 58 > > uint 49
You must Sign in before you can post messages.
You do not have the permission required to post.
|
 |
From: Racer <ra...@eteam.ru>
Date: Fri, 11 Jan 2008 02:39:23 -0800 (PST)
Local: Fri, Jan 11 2008 5:39 am
Subject: Re: AS3: uint на много медленнее, чем Number
Чисто из любопытства:
import flash.utils.getTimer;
var one_n:Number=1;
var one_i:int=1;
var one_u:uint=1;
var n = getTimer()
for (var i:Number = 0; i < 16777215; i+=one_n){}
trace("Number", getTimer()-n) //80
n = getTimer()
for (var j:int = 0; j < 16777215; j+=one_i){}
trace("int", getTimer()-n) //57
n = getTimer()
for (var k:uint = 0; k < 16777215; k+=one_u){}
trace("uint", getTimer()-n) //228
В какой бы цикл не подставили one_u получаются астрономические цифры.
Неее... uint только для обозначения констант клавиш, цветов и т.п.
You must Sign in before you can post messages.
You do not have the permission required to post.
|
 |
From: Pirrest <pirr...@gmail.com>
Date: Fri, 11 Jan 2008 20:53:54 +0200
Local: Fri, Jan 11 2008 1:53 pm
Subject: Re: [ruFlash] Re: AS3: uint на много медленнее, чем Number
Еще инетересно то, что в ActionScript 2.0 такой код: var s:Number = getTimer(); for (var i:Number = 0; i<0xFFFFFF; i++) {} trace(getTimer()-s); не доживает до трейса, т.к. выполняется больше 15-ти секунд :)
You must Sign in before you can post messages.
You do not have the permission required to post.
|
|
|