This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var d:Date = new Date(); | |
var t:Date; | |
var score:int; | |
score = getTimer(); | |
for(var i=0; i<1000; i++) | |
{ | |
t = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()); | |
} | |
trace(d, t, getTimer() - score); | |
score = getTimer(); | |
for (var i=0; i<1000; i++) | |
{ | |
t = new Date(); | |
t.time = d.time; | |
} | |
trace(d, t, getTimer() - score); | |
score = getTimer(); | |
for (var i=0; i<1000; i++) | |
{ | |
t = new Date(); | |
t.setTime(d.time); | |
} | |
trace(d, t, getTimer() - score); |
Результаты такие (в дебаге):
Wed Apr 13 11:25:05 GMT+0600 2011 Wed Apr 13 11:25:05 GMT+0600 2011 17
Wed Apr 13 11:25:05 GMT+0600 2011 Wed Apr 13 11:25:05 GMT+0600 2011 2
Wed Apr 13 11:25:05 GMT+0600 2011 Wed Apr 13 11:25:05 GMT+0600 2011 1
Скорей всего объясняется тем что функции getFullYear(), getMonth(), getDate(), getHours() и т.д. каждый раз при выдаче значения берут его из time. Т.е. нативный код естественно быстрее отработает при присваивании просто значения времени. Не ясно только с чего вдруг присваивание значения через функцию отработало быстрее чем через свойство. В общем теперь вы знаете как сделать операцию эффективнее.
Комментариев нет:
Отправить комментарий