- 浏览: 136125 次
- 性别:
- 来自: 北京
文章分类
最新评论
http://jpauclair.net/mm-cfg-secrets/
(鉴于有些国外网站有时候突然就不能访问了,为了保险起见,还是复制过来了)
I knew for a long time now that flash had undocumented features, little part of flash that could help speed up process (like the memory opcodes) or make interaction easy with right click and that kind of things. But I never thought that FlashPlayer would hide data that could help find bugs, or give better knowledge of how flash is interpreted. As you may know, The mm.cfg files is located in: This file is interpreted when a Flash Player instance launches a SWF and gives indication of what should or shouldn’t be done. Many other options are specified in the Adobe FlashPlayer Admin Guide… but most of is NOT DOCUMENTED! There is a LOT of thing to talk about and many cutting edge tools to improve your understanding of flash. So let’s get into it The complete list of features of mm.cfg is at the end of the post, but first lets talk about what’s most interesting. This feature is essential to the rest of all the cool features because they output A LOT of lines in the flashlog This is a very simple features but it change everything. Did you ever had problem tracing to many information and losing half of it in the flashlog? This one is totally crazy. This one is also very useful for debugging If you got a crash hard to find, you can turn this on and you will see ALL the last function executed that leaded to the crash. You can even see Timer Call and Events callbacks! This flag enable Just in Time Compiler (NanoJIT) logs. It gives detailed information on function conversion, bytecode conversion, MIR (machine-dependent intermediate representation) created, memory used and many others. This one give dynamic information about the opcodes being called and gives statistic for each. My question is: Having access to the CPI (Cycle per instruction) will we be able to conclude all This enable logging GPU information about current SWF while it runs. This is mainly used by the FlashBuilder Profiler. When you launch a SWF profiling, FlashBuilder add this line to mm.cfg to make it run another SWF before the one you profile. This one is just crazy powerful: See: One SWF to rule them all! and New visual Profiler AllowUserLocalTrust = 1|0 AS3AllocationTracking = 1|0 AS3AutoStartSampling = 1|0 AS3CSE = 1|0 AS3DCE = 1|0 AS3DynamicProfile = 1|0 AS3MIR = 1|0 AS3Sampling = 1|0 AS3SSE = 1|0 AS3StaticProfile = 1|0 AS3Trace = 1|0 AS3Turbo = 1|0 AS3Verbose = 1|0 AssetCacheSize=X AutoUpdateDisable = 1|0 AutoUpdateInterval = X AutoUpdateVersionUrl = [URL] AVHardwareDisable = 1|0 CodeSignLogFile CodeSignRootCert = 1|0 Convert8kAnd16kAudio = 1|0 CrashLogEnable = 1|0 DisableAVM1Loading = 1|0 DisableDeviceFontEnumeration = 1|0 DisableIncrementalGC = 1|0 DisableMulticoreRenderer = 1|0 DisableNetworkAndFilesystemInHostApp = 1|0 DisableProductDownload = 1|0 DisableSockets = 1|0 DisplayGPUBlend = 1|0 EnableIncrementalValidation = 1|0 EnableLeakFile = 1|0 EnableSocketsTo = [address] EnforceLocalSecurityInActiveXHostApp = 1|0 ErrorReportingEnable = 1|0 FileDownloadDisable = 1|0 FileUploadDisable = 1|0 ForceGPUBlend = 1|0 FrameProfilingEnable = 1|0 FullScreenDisable = 1|0 GCStats = 1|0 GPULogOutputFileName HeapProfilingAS3Enable = 1|0 LegacyDomainMatching = 1|0 LocalFileLegacyAction = 1|0 LocalFileReadDisable = 1|0 LocalStorageLimit = X LogGPU = 1|0 MaxWarnings = X OverrideGPUValidation = 1|0 OverrideUserInvokedActions = 1|0 PolicyFileLog = 1|0 PolicyFileLogAppend = 1|0 PreloadSwf?flashvar1=value&… ProductDisabled = 1|0 ProductDownloadBaseUrl ProfileFunctionEnable = 1|0 ProfilingOutputDirectory = [path] ProfilingOutputFileEnable = 1|0 RendererProfilingEnable = 1|0 RTMFPP2PDisable = 1|0 RTMFPTURNProxy = 1|0 ScriptStuckTimeout = X SecurityDialogReportingEnable = 1|0 SuppressDebuggerExceptionDialogs = 1|0 ThirdPartyStorage TraceOutputBuffered = 1|0 TraceOutputFileEnable = 1|0 TraceOutputFileName= [path] UseBrokerProcess = 1|0 WindowlessDisable = 1|0 This whole thing opens a new playground for hardcore programmer like me. I didn’t have time to work extensively on each features and I may have interpreted incorrectly certain things.
For example, most people use this file to set tracing parameters:
ErrorReportingEnable=1
TraceOutputFileEnable=1
TraceOutputFileName=c:\logs\flashlogs.txt
MaxWarnings=50The Treasure
I took my favorite 7 features and made detailed explanation with example for each one so here they are:TraceOutputBuffered = 1|0
Well this is a known bug. If you make a loop of 1 000 000 and you trace the iterator, the flashlog will skip thousand of entries and will take 100% of your CPU while writing to disk.
If you set this variable to true, the traces will be buffered and the write to disk will output multiple lines in one access.
Performance? By default (without this feature), I’m able to trace 3600 line in 6 seconds and my CPU is at 100%.
If I turn the features on, I can trace 1 000 000 lines in the same time! And my CPU is not even near 100%.
AS3Verbose = 1|0
It traces detailed information about SWF ByteCode structure and Runtime parsing of the bytecode!
You don’t need any software… no special framework to bind in your own SWF… just this one flag!
01
verify Main/CallFoo()
02
define incoming args
03
@0 arg 0
04
@1 arg 0
05
@2 arg 0
06
@3 arg 0
07
@4 arg 0
08
@5 arg 0
09
alloc local traits
10
@6 alloc 4
11
@7 alloc 8
12
alloc CallStackNode
13
@8 alloc 48
14
param 0
15
@9 ldop 0(@5)
16
@10 imm 4
17
debug_enter
18
@11 imm 0
19
@12 imm 1
20
@13 lea 0(@7)
21
@14 lea 0(@8)
22
@15 lea 0(@6)
23
save state
24
@16 def @9
25
@17 imm 165651400
26
@18 st 0(@6) <- @17
27
@19 usea @16
28
@20 st 0(@7) <- @19
29
@21 def @10
30
cse @11
31
@22 st 4(@7) <- @11
32
@23 cm MethodEnv::debugEnter (@3, @4, @5, @15, @12, @14, @13, @11)
33
@26 ld 164427072(0)
34
cse @11
35
@27 ucmp @26 @11
36
@28 jne @27 -> 0
37
@29 alloc 0
38
stack:
39
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$]
40
locals: Main@16
41
0:debugfile "C:\Dev\src;;Main.as"
42
@30 imm 164421632
43
@31 ldop 44(@30)
44
@32 imm 165988864
45
save state
46
@33 cm Debugger::debugFile (@31, @32)
47
stack:
48
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$]
49
locals: Main@16
50
2:debugline 29
51
cse @30
52
cse @31
53
@35 imm 29
54
save state
55
@36 cm Debugger::debugLine (@31, @35)
56
stack:
57
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$]
58
locals: Main@16
59
4:getlocal0
60
@38 use @16 [0]
61
stack: Main@38
62
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$]
63
locals: Main@38
64
5:pushscope
65
stack:
66
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$] Main@38
67
locals: Main@38
68
6:debugline 31
69
cse @30
70
cse @31
71
@39 imm 31
72
save state
73
@40 def @38
74
@41 use @40 [0]
75
@42 st 4(@7) <- @41
76
@43 cm Debugger::debugLine (@31, @39)
77
stack:
78
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$] Main@40
79
locals: Main@16
80
8:pushbyte 3
81
@45 imm 3
82
stack: int@45
83
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$] Main@40
84
locals: Main@16
85
10:returnvalue
86
cse @14
87
save state
88
@46 def @45
89
@47 cm MethodEnv::debugExit (@3, @14)
90
@49 use @46 [2]
91
@50 ret @49
92
@51 bb
AS3Trace = 1|0
It trace every single call to any function that is being called in the SWF at runtime!
It’s like expending the StackTrace to the full software run time.
01
1255552 AVMINF: MTHD ProfilerAgent/stopProfiling () @ 0x05DA35A0
02
1255552 AVMINF: MTHD global/flash.sampler::stopSampling () @ 0x0A8C2B20
03
1255553 AVMINF: MTHD flash.display::DisplayObject/get root () @ 0x0A8C06B0
04
1255553 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
05
1255553 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
06
1255553 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
07
1255553 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
08
1255553 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
09
1255553 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
10
1255553 AVMINF: MTHD flash.net::Socket/flush () @ 0x0A8C2AD0
11
1255553 AVMINF: MTHD flash.net::Socket/close () @ 0x0A8C2B70
12
1255553 AVMINF: MTHD flash.net::Socket/_init () @ 0x0A8C0DF0
13
1255553 AVMINF: MTHD flash.utils::Timer/stop () @ 0x0A8C2CB0
14
1255554 AVMINF: MTHD flash.utils::Timer/reset () @ 0x0A8C1B20
15
1255554 AVMINF: MTHD flash.utils::Timer/get running () @ 0x0A8C1C30
16
1255554 AVMINF: MTHD flash.net::Socket/internalClose () @ 0x0A8C2D00
17
1255554 AVMINF: MTHD flash.events::EventDispatcher/removeEventListener () @ 0x0A8C2110
18
1255554 AVMINF: MTHD flash.utils::Timer/stop () @ 0x0A8C2CB0
19
1255554 AVMINF: MTHD flash.system::System$/resume () @ 0x0A8C2D50
20
1256675 AVMINF: MTHD flash.utils::Timer/tick () @ 0x0A8C2DA0
21
1256675 AVMINF: MTHD flash.utils::Timer/_timerDispatch () @ 0x0A8C2FF0
22
1256675 AVMINF: MTHD flash.events::TimerEvent () @ 0x0A8C3040
23
1256675 AVMINF: MTHD flash.events::Event () @ 0x0A8C1AC0
24
1256675 AVMINF: MTHD Main/OnTimer () @ 0x00B70910
25
1256675 AVMINF: MTHD global/trace () @ 0x0A8C2170
26
MyTimer
27
1258705 AVMINF: MTHD flash.utils::Timer/tick () @ 0x0A8C2DA0
28
1258705 AVMINF: MTHD flash.utils::Timer/_timerDispatch () @ 0x0A8C2FF0
29
1258705 AVMINF: MTHD flash.events::TimerEvent () @ 0x0A8C3040
30
1258705 AVMINF: MTHD flash.events::Event () @ 0x0A8C1AC0
31
1258705 AVMINF: MTHD Main/OnTimer () @ 0x00B70910
32
1258705 AVMINF: MTHD global/trace () @ 0x0A8C2170
33
MyTimer
AS3StaticProfile = 1|0
At the end of execution, it also output a summary of all bytecode processed (For each opcode you have the number of occurrence, relatives importance, etc)
01
size profile Main/CallFoo
02
abc 12 mir 880 md 204
03
1773K mir/s 74K md/s 96% in compile during 854 micros
04
204 bytes from 55 MIR instructions 61 MD. max span 0 cse 7 dead 0
05
76 bytes of stack with 5 spills 5 steals 5 remats using 0 times
06
size profile Main/CallFooBar
07
abc 23 mir 1088 md 262
08
2386K mir/s 85K md/s 96% in compile during 921 micros
09
262 bytes from 68 MIR instructions 76 MD. max span 0 cse 10 dead 0
10
88 bytes of stack with 8 spills 7 steals 5 remats using 0 times
01
verified instructions 3395
02
verified code size 7441
03
cpool size 0
04
cpool int size 1
05
cpool uint size 0
06
cpool double size 0
07
cpool string size 568
08
cpool namespacesize 12
09
cpool namespace set size 0
10
cpool multiname size 75
11
methods size 20100
12
instances size 39
13
classes size 2
14
scripts size 8
15
bodies size 82873
16
17
18 0 % 36 B 0 % kill
18
5 0 % 5 B 0 % label
19
1 0 % 4 B 0 % ifngt
20
10 0 % 40 B 0 % jump
21
6 0 % 24 B 0 % iftrue
22
22 0 % 88 B 1 % iffalse
23
4 0 % 16 B 0 % ifeq
24
4 0 % 16 B 0 % ifne
25
2 0 % 8 B 0 % iflt
26
2 0 % 2 B 0 % pushwith
27
93 2 % 93 B 1 % popscope
28
2 0 % 2 B 0 % nextname
29
16 0 % 16 B 0 % pushnull
30
2 0 % 2 B 0 % pushundefined
31
79 2 % 158 B 2 % pushbyte
32
6 0 % 19 B 0 % pushshort
33
9 0 % 9 B 0 % pushtrue
34
6 0 % 6 B 0 % pushfalse
35
1 0 % 1 B 0 % pushnan
36
50 1 % 50 B 0 % pop
37
21 0 % 21 B 0 % dup
38
2 0 % 2 B 0 % swap
39
113 3 % 331 B 4 % pushstring
40
43 1 % 86 B 1 % pushint
41
11 0 % 22 B 0 % pushdouble
42
202 5 % 202 B 2 % pushscope
43
1 0 % 2 B 0 % pushnamespace
44
2 0 % 6 B 0 % hasnext2
45
143 4 % 382 B 5 % newfunction
46
60 1 % 216 B 2 % callproperty
47
102 3 % 102 B 1 % returnvoid
48
9 0 % 9 B 0 % returnvalue
49
13 0 % 26 B 0 % constructsuper
50
9 0 % 30 B 0 % constructprop
51
49 1 % 173 B 2 % callpropvoid
52
4 0 % 8 B 0 % newobject
53
5 0 % 10 B 0 % newarray
54
2 0 % 2 B 0 % newactivation
55
45 1 % 114 B 1 % newclass
56
391 11 % 1011 B 13 % findpropstrict
57
119 3 % 290 B 3 % findproperty
58
96 2 % 197 B 2 % getlex
59
158 4 % 432 B 5 % setproperty
60
18 0 % 36 B 0 % getlocal
61
18 0 % 36 B 0 % setlocal
62
2 0 % 2 B 0 % getglobalscope
63
9 0 % 18 B 0 % getscopeobject
64
365 10 % 938 B 12 % getproperty
65
174 5 % 443 B 5 % initproperty
66
2 0 % 4 B 0 % getslot
67
102 3 % 204 B 2 % setslot
68
6 0 % 6 B 0 % convert_i
69
11 0 % 11 B 0 % convert_u
70
11 0 % 11 B 0 % convert_b
71
6 0 % 14 B 0 % coerce
72
3 0 % 3 B 0 % coerce_a
73
7 0 % 7 B 0 % coerce_s
74
1 0 % 1 B 0 % negate
75
2 0 % 2 B 0 % increment
76
6 0 % 6 B 0 % not
77
6 0 % 6 B 0 % add
78
4 0 % 4 B 0 % subtract
79
1 0 % 1 B 0 % multiply
80
5 0 % 5 B 0 % divide
81
1 0 % 1 B 0 % lshift
82
3 0 % 3 B 0 % rshift
83
2 0 % 2 B 0 % bitand
84
2 0 % 2 B 0 % bitor
85
6 0 % 6 B 0 % equals
86
2 0 % 2 B 0 % lessthan
87
2 0 % 2 B 0 % greaterequals
88
1 0 % 1 B 0 % increment_i
89
275 8 % 275 B 3 % getlocal0
90
49 1 % 49 B 0 % getlocal1
91
36 1 % 36 B 0 % getlocal2
92
17 0 % 17 B 0 % getlocal3
93
13 0 % 13 B 0 % setlocal1
94
14 0 % 14 B 0 % setlocal2
95
11 0 % 11 B 0 % setlocal3
96
23 0 % 144 B 1 % abs_jump
97
54 1 % 330 B 4 % debug
98
168 4 % 456 B 6 % debugline
99
19 0 % 50 B 0 % debugfile
AS3DynamicProfile = 1|0
The statistics include count, cycles, %count, %times and CPI
fights between what operation is faster that the others? Cycle counts does not lies (on the same platform…)
* Request for Jackson Dunstan: Wanna work on that? *
But there is a problem with this one, it crash all the time.
My guess is it can’t process “Flash Object” like Movieclip, Event, and all the other and only support operation valid in tamarin.
01
total count=278 cycles=35508249 avg CPI=127727
02
user 1.9%
03
gc 0%
04
decoder 97.7%
05
verifier 1.6%
06
codegen 0.2%
07
count cycles %count %time CPI opcode
08
----- -------- ------- ------- --- ------
09
2 34714742 0.7 97.7 17357371 decode
10
211 602237 75.8 1.6 2854 verifyop
11
6 89138 2.1 0.2 14856 codegenop
12
3 78305 1.0 0.2 26101 newclass
13
7 4813 2.5 0.0 687 findpropstrict
14
6 3922 2.1 0.0 653 setslot
15
4 3260 1.4 0.0 815 initproperty
16
4 2724 1.4 0.0 681 getproperty
17
9 1859 3.2 0.0 206 getlocal0
18
4 1639 1.4 0.0 409 verifypass
19
2 1190 0.7 0.0 595 returnvoid
20
1 755 0.3 0.0 755 pushnamespace
21
3 745 1.0 0.0 248 abs_jump
22
2 550 0.7 0.0 275 findproperty
23
5 527 1.7 0.0 105 pushscope
24
1 403 0.3 0.0 403 pushnull
25
2 382 0.7 0.0 191 pushbyte
26
1 331 0.3 0.0 331 popscope
27
1 331 0.3 0.0 331 pushundefined
28
2 238 0.7 0.0 119 pushint
29
2 158 0.7 0.0 79 pushdouble
LogGPU = 1|0
Use GPULogOutputFileName = [path] to specify where to output that log.
Use DisplayGPUBlend = 1 to display the little green square while GPU runs
use ForceGPUBlend = 1 (At your own risk) to force GPU event if your videocard is not officially listed as valid for Flash GPU.
01
[GPU-BLEND] SUCEEDED to create D3D device
02
03
[GPU-BLEND]0x1161000 MONITOR/DEVICE SWITCH, old=0x0, new=0x18fd00
04
05
[GPU-BLEND]0x1161000 Started (wMode=GPU) on device 10de 402 (6.14.11.9062) NVIDIA GeForce 8600 GT mem:free=718, used=0
06
07
[GPU-BLEND]Begin render aa=4. Free TextureMem=712 Mb, Used = 5
08
[GPU-BLEND]Using 0x13b7080 as RT vp= 0 0 800 600, aa = 4
09
[GPU-BLEND]Clearing buffer 0x13b7080 { 0 0 800 600 } with color ffffffff
10
[GPU-BLEND]Filling border & background on 0x13b7080 3 3 11 11 with bo:ffffffff, ba:ff00ff00
11
[GPU-BLEND]Using 0x13b7080 as RT vp= 0 0 800 600, aa = 4
12
[GPU-BLEND]End render
13
14
[GPU-BLEND]0x1161000 Started (wMode=GPU) on device 10de 402 (6.14.11.9062) NVIDIA GeForce 8600 GT mem:free=716, used=0
15
16
[GPU-BLEND]Begin render aa=4. Free TextureMem=712 Mb, Used = 5
17
[GPU-BLEND]Using 0x11b7080 as RT vp= 0 0 800 600, aa = 4
18
[GPU-BLEND]Clearing buffer 0x11b7080 { 0 0 800 600 } with color ffffffff
19
[GPU-BLEND]Filling border & background on 0x11b7080 3 3 11 11 with bo:ffffffff, ba:ff00ff00
20
[GPU-BLEND]Using 0x11b7080 as RT vp= 0 0 800 600, aa = 4
21
[GPU-BLEND]End render
PreloadSwf?flashvar1=value&…
The default file is: C:/Documents and Settings/{USER}/My Documents/Flex Builder 3/.metadata/.plugins/com.adobe.flash.profiler/ProfilerAgent.swf?host=localhost&port=9999
The profiler agent is a SWF that use the as3 sampling classes to collect information and send them all over a socket connection to FlashBuilder.
FlashBuilder is only interpreting that data received from the SWF
By changing localhost by any other machine name you can connect to a remote FlashBuilder Profiler. On the Remote profiler you need to check the “wait for application” box and then start the local SWF on the other machine.
The Full List
undocumented features will be written in bold
Lets you prevent users from designating any files on local file systems as trusted.
Enable/Disable Profiling information (if turned off, we can’t profile Allocation in FlexBuilder anymore)
Specify if we need a feedback before starting the profiler or we start right away.
CSE is an acronym for “Common Subexpression Elimination”. It seems plausible that these may be employed by the Flash virtual machine to optimize the byte-code before executing
DCE is an acronym for “Dead Code Elimination”. It seems plausible that these may be employed by the Flash virtual machine to optimize the byte-code before executing
When enabling this (you might crash half the time) the flash player is going to collect precious profiling information on opcodes used in the Swf (count/Time/%/Cycles)
Enable/Disable Profiling information (if turned off, FlashPlayer won’t keep information on Machine-dependant intermediate representation – NanoJIT)
Enable/Disable Profiling information (if turned off, we can’t profile in FlexBuilder anymore)
*My guess is it turns on and off SSE optimization
Information Generated by NanoJit (just in time compiler used in Tamarin), including a lot of statistic on code conversion, time to process and memory use
If turned on, ALL function called (at runtime) will be outputed in the flashlogs!
You should always use in conjonction with TraceOutputBuffered=1??
Trace detailed information about SWF ByteCode structure and Runtime parsing of the bytecode!
Lets you specify a hard limit, in MB, on the amount of local storage that Flash Player uses for the storage of common Flash components.
Lets you prevent Flash Player from automatically checking for and installing updated versions.
Lets you specify how often to check for an updated version of Flash Player.
Lets you specify a precise server to look up for new flash version
Lets you prevent SWF files from accessing webcams or microphones.
??
??
??
??
If turned on, no SWF of version 8 and earlier can be loaded.
Lets you prevent information on installed fonts from being displayed.
Lets you enable/disable Garbage Collector Incremental policies (more info on the GC)
Lets you turn off multiple core rendering
Lets you prevent networking or file system access of any kind.
Lets you prevent native code applications that are digitally signed and delivered by Adobe from being downloaded.
Lets you enable or disable the use of the Socket.connect() and XMLSocket.connect() methods.
If set to 1, it will prevent GPU use even if the SWF context is setted to use GPU and your card support it.
??
??
Lets you create a whitelist of servers to which socket connections are allowed.
EnableSocketsTo = localhost.localdomain
EnableSocketsTo = 127.0.0.1Lets you enforce local security rules for a specified application.
Set the ErrorReportingEnable property to 1 to enable the debugger version of Flash Player to write error messages to the log file.
Lets you prevent the ActionScript FileReference API from performing file downloads.
Lets you prevent the ActionScript FileReference API from performing file uploads.
Force GPU blending even if you video card is not officialy supported (At your own risk!)
Enable/Disable Profiling information (if turned off, we can’t profile Frames in FlexBuilder anymore)
Lets you disable SWF files playing via a browser plug-in from being displayed in full-screen mode.
Enable/Disable Profiling information (if turned off, we can’t profile GC in FlexBuilder anymore)
Lets you specify the output file for the GPU informations
Enable/Disable Profiling information (if turned off, we can’t profile Heap in FlexBuilder anymore)
Lets you specify whether SWF files produced for Flash Player 6 and earlier can execute an operation that has been restricted in a newer version of Flash Player.
Lets you specify how Flash Player determines whether to execute certain local SWF files that were originally produced for Flash Player 7 and earlier.
Lets you prevent local SWF files from having read access to files on local hard drives.
Lets you specify a hard limit on the amount of local storage that Flash Player uses (per domain) for persistent shared objects.
Lets you specify if you want to output debug GPU log
The default value of the MaxWarnings property is 100. After 100 messages, the debugger version of Flash Player writes a message to the file stating that further error messages will be suppressed.
Overrides validation of the requirements needed to implement GPU compositing.
??
Enables the logging of policy file messages.
Set the PolicyFileLogAppend property to 1 to save previous policy file log entries
Lets you specify a SWF to be loaded before the main swf.This is the profiler agent, a little flash app (ProfilerAgent.swf) that connect to the FlexBuilder Profiler via socket (localhost:9999).
FlexBuilder is only interpreting that data.
PreloadSwf=C:/Documents and Settings/{USER}/My Documents/Flex Builder 3/.metadata/.plugins/com.adobe.flash.profiler/ProfilerAgent.swf?host=localhost&port=9999
By changing localhost by any other machine name you can connect to a remote FlashBuilder Profiler. On the Remote profiler you need to check the “wait for application” box and then start the local SWF on the other machine.Creates a list of ProductManager applications that users are not permitted to install or launch.
??
Enable/Disable Profiling information (if turned off, we can’t profile function in FlexBuilder anymore)
Specify where to save the ProfilerData file
Specify if we want to create a file containing all the profiler data (flashprof_1265745253708.dat)
Enable/Disable Profiling information (if turned off, we can’t profile in FlexBuilder anymore)
Specifies how the NetStream constructor connects to a server when a value is specified for peerID, the second parameter passed to the constructor.
Lets Flash Player make RTMFP connections through the specified TURN server in addition to normal UDP sockets.
Lets you specify the time after what the timeout (too much time running a script) exception will popup
Lets you specify whether the Security dialog should be visible or not.
Lets you specify whether the Error dialog should be visible or not.
Lets you specify whether third-party SWF files can read and write locally persistent shared objects.
Specify the flash player to use a buffer before writing to disk. If you had problem when tracing tousands of lines and line were skipped, this solve the thing. It’s also a lot faster (1000000 trace in 7 seconds instead of 3200 trace in 7 sec!)
Set TraceOutputFileEnable to 1 to enable the debugger version of Flash Player to write trace messages to the log file.
(Before Flash 9) Sets the location of the log file. By default, the debugger version of Flash Player writes error messages to a file named flashlog.txt, located in the same directory in which the mm.cfg file is located.
Lets you specify if you want to use elevated privileges or not (See the FlashPlayer update)
Lets you disable Floating Flash (ex: Ads)
Conclusion
A lot can be done with this new information:
If it’s the case please tell me and I’ll modify this post. If you do test or benchmark using this post information please post them as comment here and I’ll add the benchmark later in the post.
发表评论
-
Flex从swf中加载资源和类
2013-12-10 09:37 759需要为直播播放器做几个新的样式,想将每个样式的布局XML和 ... -
swf加载swf的一些问题
2013-03-20 17:31 7131,swfParent 加载 swfChild,如果有交互, ... -
NetStream appendBytes 一点经验
2013-03-20 16:25 2600最近在做基于 NetStream ... -
【译】HTML5还需要什么才能击败Flash(part 2)
2012-04-01 17:53 0What else does HTML5 need to ... -
【译】HTML5还需要什么才能击败Flash(part 1)
2012-04-01 16:36 1084What else does HTML5 need to de ... -
AS 函数作用域、函数闭包、限界方法
2012-03-30 10:21 1467作用域链(scope chain): 任何时候函数开始 ... -
在AS3中自定义全局方法
2012-03-29 11:17 945http://en.flash-ripper.com/2007 ... -
Flex Class object(类对象)构成、traits和prototype
2012-03-29 10:59 1558先贴张图: 每个矩形代表一个对象。CA代表class ... -
使用flex sdk3.6的asdoc遇到的问题及解决方法
2012-03-26 10:24 1951想要对一个组件项目导出asdoc。组件的sdk是3.6,但使用 ... -
UIComponent添加Image不显示
2012-03-18 17:32 1011在UIComponent中添加Image组件,图片不显示。 ... -
Flex优化技巧
2012-03-30 09:46 896http://www.jb51.net/article/182 ... -
Flex中多个柱状图和折线图的问题
2012-02-28 17:53 1984做了个柱状图和折线图的混合图表,2根3D的柱子,6根折线,遇到 ... -
AdvancedDatagrid的dataprovider属性
2012-02-22 10:15 812高级dataGrid的dataProvider的set方法里并 ... -
Sprite的宽高设置及Flex组件的混淆
2012-02-02 10:23 1689由于Bitmap和InteractiveObject同级,都继 ... -
Flex SDK3.5 PollingChannel.as 存在内存泄露bug的一种解决方法
2011-12-31 15:32 1293bug见前面的一篇文章: http://xltank.ite ... -
TextInput的ErrorString样式
2011-10-25 13:08 900http://blog.minidx.com/2008/05/ ... -
Flex trace() 保存路径
2011-10-08 17:11 1086http://help.adobe.com/en_US/fle ... -
给ItemRenderer传参
2011-08-18 17:19 1510给ItemRenderer传递初始参数,可以根据参数灵活生成I ... -
AdvancedDatagrid改变行的颜色
2011-08-16 15:25 1617最早我尝试重写AdvancedDatagrid的drawRow ... -
Flex匹配中文的正则
2011-08-08 10:39 964来源 :http://bbs.airia.cn/thread- ...
相关推荐
而`mm.cfg`文件则是Flash Player的一个配置文件,它包含了一些控制调试行为的参数。在这篇文章中,我们将深入探讨debug版Flash的特性和`mm.cfg`的存放规则。 首先,让我们了解debug版Flash Player的主要特点。与...
本文将深入探讨如何将`activiti.cfg.xml`文件整合到资源文件中,以便实现更灵活、高效的配置管理,同时兼顾应用的便捷性和适应性。 `activiti.cfg.xml`是Activiti引擎的主要配置文件,它定义了与数据库连接、事务...
标题中的“coco.names”,“yolov3.cfg”和“yolov3.weights”是三个关键文件,它们在深度学习领域,特别是目标检测任务中起着至关重要的作用。这些文件与神经网络、机器学习、人工智能和深度学习紧密相关。 首先,...
pxe装机通用ks.cfg文件,可自行更改
hibernate.cfg.xml hibernate框架的配置文件
au_temp.cfg是华为手机,荣耀手机的升级工具,适用于在三键强刷无用情况下使用,救砖用的! 使用方应运 1、下载华为对应机型的的卡刷包 2、解压后将dload目录复制到SD卡根目录下 3、复制本au_temp.cfg 到此目录下 4...
使用U盘安装win10系统安装时无法选择版本,可以将该文件复制粘贴到sources文件夹下,重新插入U盘,便可以选择家庭版、专业版等版本
au_temp.cfg
适用于zookeeper初学者,里面文件拥有一些详细的解释 以及用法
《深入理解Hibernate配置文件hibernate.cfg.xml》 在Java应用程序开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,将数据库操作与业务逻辑解耦。而`hibernate.cfg.xml`是Hibernate...
### hibernate.cfg.xml 文件详解 #### 一、概述 `hibernate.cfg.xml` 是 Hibernate 框架的核心配置文件之一,它主要用于配置 Hibernate 的运行环境。通过该文件,开发者可以指定数据库连接信息、日志级别、性能...
darknet的YoloV3-tiny检测交通标志--34种(.cfg配置文件,.data、.name文件、权重文件),针对清晰图像有较好的识别效果。使用该资源请提前部署好darknet环境即可直接识别。 (ps:我原本没调整需要积分,后来发现都...
这个压缩包文件"yolov4.cfg_yolov4.weights.7z"包含了训练好的YOLOv4模型配置文件(yolov4.cfg)和权重文件(yolov4.weights),这是在计算机视觉任务中进行目标检测的关键组成部分。 **YOLOv4的核心概念:** YOLO...
此文件为华为官网提供的自动刷机文件。使用时1、下载华为的刷机包。2、解压到SD卡根目录下的dload目录。3、复制au_temp.cfg 到此目录。4、重启手机,不用按任何按键,手机会自动开始刷机。 本人测试手机为华为4X...
在YOLOv3的配置文件`yolov3.cfg`中,包含了网络的具体结构信息,如卷积层的数量、大小、步长、填充等参数,以及激活函数的选择、池化层的设置、批归一化层(Batch Normalization)和dropout的比例等。这些参数的调整...
标题中的"anaconda-ks.cfg.zip"提示我们这是一个与Anaconda和Kickstart配置相关的压缩文件。Anaconda是Red Hat Enterprise Linux、CentOS以及Fedora等Linux发行版的安装程序,而"ks.cfg"则代表Kickstart配置文件,...
Hibernate配置文件hibernate.cfg.xml中配置信息详解!
在现代的Spring应用程序中,整合Hibernate时,我们通常会选择使用Spring的IoC(Inversion of Control)容器来管理数据访问层,而不是直接依赖于Hibernate的配置文件`hibernate.cfg.xml`。这是因为Spring提供了更高级...
专为Flash调试优化的mm.cfg,打开了很多选项,可以直接看到 AVM机中的输出。 下载后请放到当前用户的主目录下即可
GRUB2配置文件grub.cfg详解(GRUB2实战手册),各个参数解析。