Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обычный vs Статический класс (быстродействие) (http://www.flasher.ru/forum/showthread.php?t=146828)

Ivanaka 19.11.2010 00:35

Обычный vs Статический класс (быстродействие)
 
Здравствуйте!
Есть несколько статических классов выполняющих объемные арифметические расчеты. Методы этих классов вызываются в других классах. Вопрос в том, быстрее ли стат методы чем обычные?

Psycho Tiger 19.11.2010 00:37

Врятли.

Проведите тест, что мешает?

Партизан 19.11.2010 01:25

Монопенисуально я думаю.

f.g.programmer 19.11.2010 02:22

Как-то сравнивал скорость вызовов статических и нестатических методов, отличий не обнаружил.

Ivanaka 19.11.2010 02:26

Понял, спасибо всем.

gr_crd 19.11.2010 15:55

у меня статический получается медленнее.
Debug, FP v 10

Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.utils.getTimer;
 
        public class Main extends Sprite
        {
 
                private var _Math:MathA;
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        //
                        _Math=new MathA();
                        stage.addEventListener(MouseEvent.CLICK, onMouseClick);
                }
 
                private function onMouseClick(me:MouseEvent):void
                {
                        var begin:uint=0;
                        begin=getTimer();
                        for(var i:uint=0;i<1000000;i++)
                        {
                                // _Math.calculate(5,7); // 393 401 397
                                //MathB.calculate(5,7); // 468 466 466
                        }
                        var res:uint=getTimer()-begin;
                        trace(res);
                }
 
        }//class
 
}//pack

Код AS3:

package{
        public class MathA{
                public function MathA()
                {
 
                }
 
                public function calculate(a:int,b:int):void
                {
                        (a*b)+(a*b)+(a*b)/(a+b)*(a-b);
                }
        }
}

Код AS3:

package{
        public class MathB{
 
                public static function calculate(a:int,b:int):void
                {
                        (a*b)+(a*b)+(a*b)/(a+b)*(a-b);
                }
        }
}


f.g.programmer 19.11.2010 21:26

Да действительно при 3000000 вызовов в релиз компиляции для fp10 данный код в статическом методе у меня был на 20 миллисекунд медленее.
Т.е. примерно 7 миллисекунд на 1000000 вызовов.

gr_crd 19.11.2010 21:48

даа в дебаге как всегда намного хуже...
ну 7 мс это не страшно)


Часовой пояс GMT +4, время: 14:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.