Ìåõàíèçì ðåàëüíîãî íàñëåäîâàíèÿ â AVM2 - Flash Zone Forum

Çäðàâñòâóéòå, ãîñòü ( Âõîä | Ðåãèñòðàöèÿ )

 
Îòâåòèòü â ýòó òåìóÎòêðûòü íîâóþ òåìó
> Ìåõàíèçì ðåàëüíîãî íàñëåäîâàíèÿ â AVM2
chingachgoog
ñîîáùåíèå 2.03.2009 - 18:33
Ñîîáùåíèå #1


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Ïîëüçîâàòåëü
Ñîîáùåíèé: 1239
Ðåãèñòðàöèÿ: 27.02.2009
Èç: Moscow
Ïîëüçîâàòåëü ¹: 9144



Åñòü èíòåðåñíûé ìàíóàëü÷èê Actionscript 3.0 and Performance Tuning

 íåì íåñêîëüêî èíòåðåñíûõ êàðòèíîê:

Ïðèêðåïëåííûé ôàéë  traits.jpg ( 39.25 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 13


×òî îáîçíà÷àþò áóêâû íà æåëòûõ ïëàøêàõ, òàê è íå äîãíàë sad.gif

Èëè âîò åùå:

Ïðèêðåïëåííûé ôàéë  AVM2.jpg ( 55.05 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 13


Íå ïîéìó ÷òî-òî êàê îäíîâðåìåííî ðàíòàéìîì óïðàâëÿåò è èíòåðïðåòàòîð è íåêèé JIT êîìïèëÿòîð???

add:
ïî-õîäó êàðòèíêè íàïðÿìóþ âèæó òîëüêî ÿ? Êàê èõ âñòàâèòü ñ ëîêàëüíîãî êîìïà, ÷òîáû áûëî âèäíî âñåì?

add:
Just-in-time compilation (JIT) (òàêæå èçâåñòíà êàê dynamic translation) — êîìïèëÿöèÿ «íà ëåòó» — ýòî òåõíîëîãèÿ óâåëè÷åíèÿ ïðîèçâîäèòåëüíîñòè ïðîãðàììíûõ ñèñòåì, èñïîëüçóþùèõ áàéò-êîä.
MIR: Macromedia Intermediate Representation - ìåæïëàòôîðìåííàÿ (àáñòðàêòíàÿ) ÷àñòü äâèæêà JIT
Machine Code (MD) Generation - êîíêðåòíàÿ (çàêëþ÷èòåëüíàÿ) ÷àñòü äâèæêà JIT ïîä êîíêðåòíóþ ïëàòôîðìó (x86, PowerPC, ARM)

Íàñêîëüêî ÿ ïîíÿë, äåëî îáñòîèò òàê:
Âåñü êîä íà óðîâíå êëàññà ðàçáèðàåòñÿ íà äâå ïîëîâèíû:
1) Ñîçäàåòñÿ îñîáûé ìåòîä - Èíèöèàëèçàòîð êëàññà, êîòîðûé âêëþ÷àåò â ñåáÿ íåêèå ôóíêöèè èíèöèàëèçàöèè ($init, $cinit) - òàêèå êàê ñòàòè÷åñêèå îïðåäåëåíèÿ, êîä íå îòíîñÿùèéñÿ ê ïåðåìåííûì è ìåòîäàì êëàññà. Èíèöèàëèçàòîð êëàññà âûïîëíÿåòñÿ ñðàçó ïîñëå îïðåäåëåíèÿ êëàññà è âñåãî ÎÄÈÍ ðàç. Îñíîâíàÿ îñîáåííîñòü - áàéò-êîä èñïîëíÿåòñÿ â ðåæèìå èíòåðïðåòàöèè, ò.å. áåç ó÷àñòèÿ JIT, ò.å. ìåäëåííî.
2) Êîä ñâîéñòâ è ìåòîäîâ âòîðè÷íî êîìïèëèðóåòñÿ è îáðàáàòûâàåòñÿ ÷åðåç JIT, ò.å. äîâîëüíî áûñòðî.

Ñêîðåå âñåãî êîä äèíàìè÷åñêèõ êëàññîâ òàêæå íå ñïîñîáåí âûïîëíÿòüñÿ JIT è ïîòîìó èñïîëíÿåòñÿ â ðåæèìå îáû÷íîé èíòåðïðåòàöèè. Âîçìîæíî, ÷òî íåòèïèçèðîâàííûé êîä òàêæå ðàñïðåäåëÿåòñÿ íà 32-áèòíûå ÷àñòè è èñïîëíÿåòñÿ òîëüêî èíòåðïðåòàòîðîì - ýòî îáúÿñíèëî áû çàìåäëåíèå êîäà áåç òèïèçàöèè, ïî ñðàâíåíèþ ñ òî÷íî òàêèì æå êîäîì, íî ñ òèïèçàöèåé.

Ñîîáùåíèå îòðåäàêòèðîâàë chingachgoog - 9.06.2009 - 14:18


--------------------
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
MustLive
ñîîáùåíèå 3.03.2009 - 22:37
Ñîîáùåíèå #2


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Flash Zone Team
Ñîîáùåíèé: 4988
Ðåãèñòðàöèÿ: 10.03.2005
Èç: Êèåâ
Ïîëüçîâàòåëü ¹: 5



Öèòàòà
ïî-õîäó êàðòèíêè íàïðÿìóþ âèæó òîëüêî ÿ? Êàê èõ âñòàâèòü ñ ëîêàëüíîãî êîìïà, ÷òîáû áûëî âèäíî âñåì?

chingachgoog, íå ïåðåæèâàé, êàðòèíêè âèäÿò âñå.

×òîáû êàðòèíêè áûëè âèäíû âñåì ó÷àñòíèêàì ôîðóìà, íóæíî èëè çàêà÷èâàòü èõ íà ôîðóì (êàê ýòî òû ñåé÷àñ ñäåëàë), èëè æå ðàçìåùàòü íà õîñòèíãàõ èçîáðàæåíèé è â ïîñòå óêàçûâàòü íà íèõ ïðÿìóþ ññûëêó.


--------------------
Best wishes & regards,
MustLive
Àäìèíèñòðàòîð ñàéòà
http://mlfun.org.ua
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
chingachgoog
ñîîáùåíèå 3.03.2009 - 23:14
Ñîîáùåíèå #3


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Ïîëüçîâàòåëü
Ñîîáùåíèé: 1239
Ðåãèñòðàöèÿ: 27.02.2009
Èç: Moscow
Ïîëüçîâàòåëü ¹: 9144



Öèòàòà(MustLive @ 3.03.2009 - 22:37) *
chingachgoog, íå ïåðåæèâàé, êàðòèíêè âèäÿò âñå.


Ïîíÿë. ß çàõîäèë ñ äðóãîãî êîìïà êàê ãîñòü è â ýòîì ñëó÷àå êàðòèíêè âèäíû íå áûëè. Êàê òîëüêî àâòîðèçîâàëñÿ - âñå ñòàëî âèäíî.


--------------------
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
chingachgoog
ñîîáùåíèå 8.04.2009 - 19:38
Ñîîáùåíèå #4


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Ïîëüçîâàòåëü
Ñîîáùåíèé: 1239
Ðåãèñòðàöèÿ: 27.02.2009
Èç: Moscow
Ïîëüçîâàòåëü ¹: 9144



Íàøåë â ðóêîâîäñòâå àäîáà flash_as3_programming.pdf íåêîòîðûå ïîÿñíåíèÿ.
Ïðèêðåïëåííûé ôàéë  ClassA.png ( 11.85 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 5

Èòàê ýòî ñõåìà äëÿ êîäà
Êîä
class A {}

Ò.å. áóêâà À - ýòî íàçâàíèå êëàññà
C - Class
T - traits (ñâîéñòâà)
P - prototype
O - íå ÿñíî. Ìîæíî ïðåäïîëîæèòü, ÷òî ýòî ïðîñòî Object - ïðåäåëüíûé ðîäèòåëüñêèé îáúåêò îò êîòîðîãî âñå íàñëåäóåòñÿ.

Èòàê, ÷òî âèäíî èç ñõåìû.
Êîãäà ìû ñîçäàåì êëàññ À, òî ñîçäàþòñÿ 4 îáúåêòà.
Äâà èç íèõ î÷åâèäíû (è ê íèì ìîæíî îáðàùàòüñÿ íàïðÿìóþ):
1) Ñà - îáúåêò êëàññà À (îáðàùàòüñÿ ê íåìó ìîæíî íàïðÿìóþ: À)
2) Pà - îáúåêò ïðîòîòèïà êëàññà À (îáðàùàòüñÿ ÷åðåç À.prototype)
Äâà äðóãèõ íåî÷åâèäíû è ïðåäñòàâëÿþò ñîáîé âíóòðåííþþ ðåàëèçàöèþ ìîäåëè "íà íàñòîÿùèõ êëàññîâ" AVM2:
1) Òñà - îáúåêò ïðèçíàêîâ êëàññà. Ýòî âíóòðåííèé òèï êëàññà. Îí õðàíèò ñòàòè÷åñêèå ñâîéñòâà êëàññà.
2) Òà - îáúåêò ïðèçíàêîâ ýêçåìïëÿðà. Ñþäà çàïèñûâàþòñÿ ñâîéñòâà êëàññà è ñþäà êîïèðóþòñÿ ñâîéñòâà (èëè óêàçàòåëè íà íèõ) ñóïåðêëàññîâ.
Ðàçðàáîò÷èêè íå ãàðàíòèðóþò, ÷òî ïîñëåäíèå äâà îáúåêòà ìîãóò ñîõðàíèòüñÿ â äàëüíåéøèõ âåðñèÿõ.

Öåïî÷êà âèäèìîñòè íàñëåäóåìûõ ñâîéñòâ ñíà÷àëà èäåò â Òà è ëèøü ïîòîì â Pà.


--------------------
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
chingachgoog
ñîîáùåíèå 12.02.2010 - 13:18
Ñîîáùåíèå #5


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Ïîëüçîâàòåëü
Ñîîáùåíèé: 1239
Ðåãèñòðàöèÿ: 27.02.2009
Èç: Moscow
Ïîëüçîâàòåëü ¹: 9144



Íåñêîëüêî ïîëåçíûõ ññûëîê.
Íåìíîãî íå ïî òåìå íàñëåäîâàíèÿ, íî çàòî ïî òåìå ÐÅÀËÜÍÎÃÎ ìåõàíèçìà ðàáîòû ÔÏ è AVM2:

Íåèçâåñòíûå è ïîëåçíûå íàñòðîéêè äåáàã ÔÏ:
http://jpauclair.net/2010/02/10/mmcfg-treasure/

Adobe® Flash® Player 10 Administration Guide
http://www.adobe.com/devnet/flashplayer/ar...admin_guide.pdf

ActionScript Virtual Machine 2 (AVM2) Overview
http://www.adobe.com/devnet/actionscript/a...vm2overview.pdf

Ðàáîòà ñ âèðòóàëüíîé ïàìÿòüþ (îïêîäû, à-ëÿ àëõèìèÿ)
http://www.ncannasse.fr/blog/virtual_memory_api?lang=en


--------------------
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
chingachgoog
ñîîáùåíèå 28.06.2011 - 19:20
Ñîîáùåíèå #6


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Ïîëüçîâàòåëü
Ñîîáùåíèé: 1239
Ðåãèñòðàöèÿ: 27.02.2009
Èç: Moscow
Ïîëüçîâàòåëü ¹: 9144



Âîîáùå äæèòòåð ðàáîòàåò íåóëîâèìî òóãî è íåïðåäñêàçóåìî.

Âîò òóò ðàñïèñàíû íåêîòîðûå ðåçóëüòàòû ïðî ðàçíèöó êîìïèëÿöèè ìåæäó
obj={} è obj=new Object

Òàê êàê áàéòêîä ó {} êîðî÷å, òî ïîíÿòíî, ÷òî â ðåæèìå èíòåðïðåòàöèè {} âûïîëíÿåòñÿ øóñòðåå. Íî àâòîðû óòâåðæäàëè, ÷òî â äæèòòåðå áûñòðåå âûïîëíÿåòñÿ new Object !
Ïðîâåðèë ÿ (CS3) è ðåçóëüòàòû ó ìåíÿ ñòîéêî îäèíàêîâûå: {} ÂÑÅÃÄÀ ÁÛÑÒÐÅÅ, à âûçîâ ÷åðåç ôóíêöèþ ëîãè÷íî åùå áîëåå çàìåäëÿåò ïðîöåññ.

Ïîïðîáîâàë ÿ ñäåëàòü êàê áû áåç äæèòòåðà - ðåçóëüòàòû âûøëè åùå áîëåå èíòåðåñíûå:

Êîä
package {
    
    import flash.utils.getTimer
    
    public class SpeedCheck {
    
        public var t1:int=getInterpretationCurley()
        public var t2:int=getInterpretationNew()
        
        public function SpeedCheck(){
            
        }
        
           public function curley() {
              var obj:Object
            var time:int=getTimer()
            for (var i:int = 0; i < 1000000; i++) {
                obj = {}
            }
            return (getTimer()-time)
           }

           public function newObject() {
              var obj:Object
            var time:int=getTimer()
            for (var i:int = 0; i < 1000000; i++) {
                obj = new Object
            }
            return (getTimer()-time)  
           }
    }
}

import flash.utils.getTimer

function getInterpretationCurley():int{
    var obj:Object
    var time:int=getTimer()
    for (var i:int = 0; i < 1000000; i++) {
        obj = {}
    }
    return (getTimer()-time)
}

function getInterpretationNew():int{
    var obj:Object
    var time:int=getTimer()
    for (var i:int = 0; i < 1000000; i++) {
        obj = new Object
    }
    return (getTimer()-time)
}


Âûçûâàòü òàê:

Êîä
var a:SpeedCheck=new SpeedCheck()

trace("interpret {} "+a.t1) // 515
trace("interpret new "+a.t1) // 515

trace("JIT {} "+a.curley()) // 500
trace("JIT new "+a.newObject()) // 731


Ïðàâäà ÿ íå óâåðåí, ÷òî èíòåðïðåòèðóåìàÿ ÷àñòü (îáúÿâëåíèå êëàññà) íå èñïîëüçóåò JIT-êîìïèëèðóåìóþ ÷àñòü îò âíåøíèõ ôóíêöèé. Ýòî åùå òîò âîïðîñ...


--------------------
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
Moonlight
ñîîáùåíèå 26.07.2011 - 14:49
Ñîîáùåíèå #7


Íîâè÷îê
*

Ãðóïïà: Íîâè÷îê
Ñîîáùåíèé: 2
Ðåãèñòðàöèÿ: 23.07.2011
Ïîëüçîâàòåëü ¹: 10600



Íàâåðíîå, äîëæíî áûòü òàê:
Êîä
var a:SpeedCheck=new SpeedCheck()

trace("interpret {} "+a.t1) // 312
// a.t2 instead of a.t1
trace("interpret new "+a.t2) // 218

trace("JIT {} "+a.curley()) // 312
trace("JIT new "+a.newObject()) // 216


 êîììåíòàðèÿõ óêàçàë âðåìÿ, êîòîðîå ïîëó÷èëîñü ó ìåíÿ.
Êñòàòè, çàïóñêàë â Flash Player 11.0.1.60

Ñîîáùåíèå îòðåäàêòèðîâàë Moonlight - 26.07.2011 - 14:57
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
chingachgoog
ñîîáùåíèå 27.07.2011 - 13:12
Ñîîáùåíèå #8


Âåòåðàí êîíôåðåíöèè
*****

Ãðóïïà: Ïîëüçîâàòåëü
Ñîîáùåíèé: 1239
Ðåãèñòðàöèÿ: 27.02.2009
Èç: Moscow
Ïîëüçîâàòåëü ¹: 9144



Öèòàòà(Moonlight @ 26.07.2011 - 15:49) *
Íàâåðíîå, äîëæíî áûòü òàê:
Êîä
// a.t2 instead of a.t1


Äà-äà, ðàçóìååòñÿ.

×óòü èçìåíèë êîä, ÷òîáû îòñå÷ü âëèÿíèå òðåéñà è âîîáùå äåáàæíîãî ïëååðà (tf - òåêñòîâîå ïîëå íà ñòåéäæå):

Êîä
var a:SpeedCheck=new SpeedCheck()
var S:String=""
S+="interpret {} "+a.t1+"\rinterpret new "+a.t2+"\rJIT {} "+a.curley()+"\rJIT new "+a.newObject()
tf.text=flash.system.Capabilities.playerType+" "+flash.system.Capabilities.version+" isDebugger="+flash.system.Capabilities.isDebugger+"\r"+S


È âîò ÷òî ó ìåíÿ âûøëî:

Ïðè çàïóñêå â SC4:

External WIN 10,0,2,54 isDebugger=true
interpret {} 515
interpret new 668
JIT {} 508
JIT new 655

Ïðè çàïóñêå ñ ðàáî÷åãî ñòîëà:

StandAlone WIN 10,0,2,54 isDebugger=false
interpret {} 472
interpret new 647
JIT {} 473
JIT new 650

Ïðè äðàãýíäðîïå â 6-é IE: (îòêóäà-òî äåáàã-ÔÏ òàì óñòàíîâèëñÿ?)

ActiveX WIN 10,2,153,1 isDebugger=true
interpret {} 548
interpret new 310
JIT {} 563
JIT new 337

Ïðè äðàãýíäðîïå â Õðîì:

PlugIn WIN 10,3,181,35 isDebugger=false
interpret {} 318
interpret new 189
JIT {} 318
JIT new 190

Êðàéíå çàáàâíûå ðåçóëüòàòû...

Ñîîáùåíèå îòðåäàêòèðîâàë chingachgoog - 27.07.2011 - 13:17


--------------------
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
 
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ

Îòâåòèòü â ýòó òåìóÎòêðûòü íîâóþ òåìó
1 ÷åë. ÷èòàþò ýòó òåìó (ãîñòåé: 1, ñêðûòûõ ïîëüçîâàòåëåé: 0)
Ïîëüçîâàòåëåé: 0

 



- Òåêñòîâàÿ âåðñèÿ Ñåé÷àñ: 8.06.2016 - 16:02