SlideShare una empresa de Scribd logo
1 de 61
AVM2虚拟机浅析&AS3性能优化 By 陈士凯(CSK) csk@live.com www.csksoft.net Ver. 2010.5.29
An Introduction to AVM2 & AS3.0 Optimization AVM2虚拟机介绍 对AS3进行性能分析 { Agenda AS3代码优化启发 对AVM2进行扩充和改造 Demos
An Introduction to AVM2 & AS3.0 Optimization AVM2 虚拟机 从Flash Player 9.0开始引入,用于AS3.0代码的解释和二进制翻译执行。 采用JIT/Interpret混合执行,大幅提高运行效率 AS3比AS1/2运行速度提升~10x 内建对XML, Array类型的处理支持 已经开源: Tamarin Project I Introduction to AVM2
An Introduction to AVM2 & AS3.0 Optimization Flash Framework SWF files .ABC ( Actionscript Byte Code) ActionScript Runtime Flash Player AVM1/AVM2 OS
An Introduction to AVM2 & AS3.0 Optimization 研究AVM2的目的与意义 ,[object Object]
AS3代码性能优化
Flash项目的代码保护和逆向工程
增强/扩充AVM2性能/功能,开发第三方AVM2引擎
虚拟机实现的学习和研究*,[object Object]
An Introduction to AVM2 & AS3.0 Optimization .ABC 指令集 ,[object Object]
共 172 条指令。(数据来源:ActionBlockConstants.h) ,[object Object]
原生支持Array、XML数据结构 ,[object Object]
An Introduction to AVM2 & AS3.0 Optimization AS3 -> .ABC AS3 function func(x:int):int{ varans:int; ans= x + 10; return ans; } .abc 0     getlocal0 1     pushscope 2     pushbyte 0 4     setlocal2 5     getlocal1 6     pushbyte 10 8     add 9     convert_i 10    setlocal2 11    getlocal2 12    returnvalue
An Introduction to AVM2 & AS3.0 Optimization 对ABC的解析执行(Interpret) 逐条解析执行,没有优化、低效 .abc 0     getlocal0 1     pushscope 2     pushbyte 0 4     setlocal2 5     getlocal1 6     pushbyte 10 8     add 9     convert_i 10    setlocal2 11    getlocal2 12    returnvalue for(;;) {    switch (*pc++){   … case op_add: a1 = sp[-1];     a2 = sp[0]; sp--;        … dest=  toplevel->add2(a1, a2);    }   …
An Introduction to AVM2 & AS3.0 Optimization 对ABC的即时二进制翻译(JIT) ABC -> MIR/LIR -> Target Native Code 高效率、允许进行运行时优化,如CSE和死码删除 .abc 0     getlocal0 1     pushscope 2     pushbyte 0 4     setlocal2 5     getlocal1 6     pushbyte 10 8     add 9     convert_i 10    setlocal2 11    getlocal2 12    returnvalue MIR/LIR @40 use @17 [0] @41 use @22 [1] @42 imm   10 @46 add   @41 @42 @47 def   @46 @49 usea  @47 @50 st8(@7) <- @49 @54 def@46 spans call … @57 use   @54 [4] @58 ret   @57 x86 Assembly moveax, -88(ebp) movecx, -92(ebp) add   ecx, 10 movedx, ecx mov-84(ebp), edx lea   edx, -84(ebp) mov   -20(ebp), edx mov   -96(ebp), ecx moveax, -96(ebp) jmp   2147483647
An Introduction to AVM2 & AS3.0 Optimization 对ABC的即时二进制翻译(JIT) ABC -> MIR/LIR -> Target Native Code 高效率、允许运行时优化,如CSE和死码删除 .abc 0     getlocal0 1     pushscope 2     pushbyte 0 4     setlocal2 5     getlocal1 6     pushbyte 10 8     add 9     convert_i 10    setlocal2 11    getlocal2 12    returnvalue MIR/LIR @40 use @17 [0] @41 use @22 [1] @42 imm   10 @46 add   @41 @42 @47 def   @46 @49 usea  @47 @50 st8(@7) <- @49 @54 def@46 spans call … @57 use   @54 [4] @58 ret   @57 x86 Assembly moveax, -88(ebp) movecx, -92(ebp) add   ecx, 10 movedx, ecx mov-84(ebp), edx lea   edx, -84(ebp) mov   -20(ebp), edx mov   -96(ebp), ecx moveax, -96(ebp) jmp   2147483647
An Introduction to AVM2 & AS3.0 Optimization JIT V.S. Interpret 同一段代码在第一次JIT时往往花费的时间较长 代码翻译比较耗时 当再次执行这段代码后,VM将直接调用先前的翻译结果,速度提高。 Interpert对同一段代码均具有大致相同的执行速度。 JIT并非性能总优于Interpret: 运行时间 Interpret JIT 执行次数 JIT触发阈值
An Introduction to AVM2 & AS3.0 Optimization AVM2的JIT策略 对JIT阈值的选择: ,[object Object]
固定策略:对$init和$cinit区代码进行Interpreting,其他代码均进行JITNote: $cinit并非一个类的构造函数。
An Introduction to AVM2 & AS3.0 Optimization AVM2 JIT优化 ,[object Object]
Early Binding
Constant Folding
Copy & Constant Propagation
Common Subexpression Elimination (CSE)
Dead Code Elimination (DCE)* ActionScript 3.0 and AVM2: Performance Tuning
An Introduction to AVM2 & AS3.0 Optimization AVM2 的开源进程 -- TamarinProject http://www.mozilla.org/projects/tamarin/ 所有AVM2核心部分: ,[object Object]
nanoJIT
核心AS3库 (Array/Math/Regexp…)
ByteArray等部分
Flash动画渲染部分并未包括对其他开源项目的影响 ,[object Object]
SpiderMonkey(NanoJIT,GC)了解AVM2的最有利资源 Tamarin [动]绢毛猴(南美洲产)
An Introduction to AVM2 & AS3.0 Optimization Tamarin Project 的衍生项目 ,[object Object]
Adoble贡献于Mozilla, 使用Hotspot Detection进行JIT
Red-Tamarin Project
注重Shell部分开发,扩充AS3对本地资源设备的控制能力,致力于实现第三方类Flash Player/AIR平台。
...,[object Object]
An Introduction to AVM2 & AS3.0 Optimization ActionScript 3的优化注意点 ,[object Object],for(varj:int = 0; j < list.length; j++) {copy.push( list[i] ); } ~320ms (list.length == 50000) vararrLen:int= list.length; for(varj:int = 0; j <arrLen; j++) {copy.push( list[i] ); } ~93ms (list.length == 50000)
An Introduction to AVM2 & AS3.0 Optimization ActionScript 3的优化注意点 ,[object Object],var i:int; // i*2 gets promoted to Number for (i=0; i<10000; i++) { 	a[i*2] = 0; } for (i=0; i<10000; i++) { a[int(i*2+1)] = 1; }
An Introduction to AVM2 & AS3.0 Optimization ActionScript 3的优化注意点 ,[object Object],[object Object]
An Introduction to AVM2 & AS3.0 Optimization ActionScript的静态分析 – SWF的反汇编 ,[object Object]
swfdump
Flex sdk自带
abcdump.as
自身也是用AS3实现,运行于Tamarin的AVM2虚拟机中
比较推荐
ASV
收费,[object Object]
An Introduction to AVM2 & AS3.0 Optimization ActionScript的静态分析 – mxmlc优化性能分析 ,[object Object],private function cse_testing(x:int):int{ vara:int, b:int;    a = x + 10; b= x + 10;     return a; } 共用子表达式 无用变量(死码) a=x+10 b=x+10 * 采用优化模式、非debug版本编译
An Introduction to AVM2 & AS3.0 Optimization ActionScript的静态分析 – mxmlc优化性能分析 ,[object Object]
JIT会进行Common Sub-expression elimination)和DCE(Dead Code Elimination),从而弥补编译器的薄弱优化
影响和暗示
Interpret执行时效果将非常差 – 存在无用功:
e.g. var a = // Very Slow Operation (no function call) var b = // Very Slow Operation (no function call) return a;  //b的动作完全是无效果的 ,[object Object]
AS3编写注意点:
尽可能手工进行CSE和DCE的优化,[object Object]
进行类型转化在静态编译后只会造成代码膨胀,并且在Interpret阶段效率更低。(但JIT引入后实际影响不大)
An Introduction to AVM2 & AS3.0 Optimization ActionScript的静态分析 – mxmlc优化性能分析2 ,[object Object],[object Object]
位于目录 Flexsdk_root/lib/
支持编译产生.swf, .exe, .abc
用于Tamarin项目的内置AS3类编译
缺陷

Más contenido relacionado

La actualidad más candente

RoBoard 與 Lego NXT Sensors 之連接
RoBoard 與 Lego NXT Sensors 之連接RoBoard 與 Lego NXT Sensors 之連接
RoBoard 與 Lego NXT Sensors 之連接
roboard
 
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 20143D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
roboard
 
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
wang hongjiang
 
六足機器人超入門簡介
六足機器人超入門簡介六足機器人超入門簡介
六足機器人超入門簡介
roboard
 
线程与并发
线程与并发线程与并发
线程与并发
Tony Deng
 

La actualidad más candente (20)

程式人雜誌 -- 2014 年8月號
程式人雜誌 -- 2014 年8月號程式人雜誌 -- 2014 年8月號
程式人雜誌 -- 2014 年8月號
 
Worktest测试框架原理
Worktest测试框架原理Worktest测试框架原理
Worktest测试框架原理
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
 
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
 
89S51電路板
89S51電路板89S51電路板
89S51電路板
 
RoBoard 與 Lego NXT Sensors 之連接
RoBoard 與 Lego NXT Sensors 之連接RoBoard 與 Lego NXT Sensors 之連接
RoBoard 與 Lego NXT Sensors 之連接
 
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
 
Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse Engineering
 
UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)
 
Stm32 technical slide_pdf
Stm32 technical slide_pdfStm32 technical slide_pdf
Stm32 technical slide_pdf
 
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 20143D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
 
Ali-tomcat
Ali-tomcatAli-tomcat
Ali-tomcat
 
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺
 
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
 
181201_CoAP_coding365
181201_CoAP_coding365181201_CoAP_coding365
181201_CoAP_coding365
 
嵌入式inux應用專題文件-智慧家庭系統
嵌入式inux應用專題文件-智慧家庭系統嵌入式inux應用專題文件-智慧家庭系統
嵌入式inux應用專題文件-智慧家庭系統
 
[若渴計畫]64-bit Linux Return-Oriented Programming
[若渴計畫]64-bit Linux Return-Oriented Programming[若渴計畫]64-bit Linux Return-Oriented Programming
[若渴計畫]64-bit Linux Return-Oriented Programming
 
六足機器人超入門簡介
六足機器人超入門簡介六足機器人超入門簡介
六足機器人超入門簡介
 
Arduino感測應用
Arduino感測應用Arduino感測應用
Arduino感測應用
 
线程与并发
线程与并发线程与并发
线程与并发
 

Destacado

Destacado (6)

Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬
 
Andeo
AndeoAndeo
Andeo
 
松耦合代码之开发方法与工具演示 刘争辉
松耦合代码之开发方法与工具演示 刘争辉松耦合代码之开发方法与工具演示 刘争辉
松耦合代码之开发方法与工具演示 刘争辉
 
Ghost cat 以皮肤为主体的ui框架(唐翎)
Ghost cat 以皮肤为主体的ui框架(唐翎)Ghost cat 以皮肤为主体的ui框架(唐翎)
Ghost cat 以皮肤为主体的ui框架(唐翎)
 
浅析Flash特效开发 陈勇
浅析Flash特效开发 陈勇浅析Flash特效开发 陈勇
浅析Flash特效开发 陈勇
 
Web base 吴志华
Web base 吴志华Web base 吴志华
Web base 吴志华
 

Similar a Avm2虚拟机浅析与as3性能优化(陈士凯)

Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
OpenSourceCamp
 
分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术
ITband
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
thinkinlamp
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
pwesh
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
Xiaozhe Wang
 
Lamp高性能设计
Lamp高性能设计Lamp高性能设计
Lamp高性能设计
锐 张
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
Hengyi
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1
Jack Wang
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocket
pwesh
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalived
colderboy17
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
heima911
 

Similar a Avm2虚拟机浅析与as3性能优化(陈士凯) (20)

Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化
 
Ipaq with linux
Ipaq with linuxIpaq with linux
Ipaq with linux
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
 
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
 
Optimzing mysql
Optimzing mysqlOptimzing mysql
Optimzing mysql
 
Godson x86
Godson x86Godson x86
Godson x86
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
Lamp高性能设计
Lamp高性能设计Lamp高性能设计
Lamp高性能设计
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocket
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalived
 
高性能LAMP程序设计
高性能LAMP程序设计高性能LAMP程序设计
高性能LAMP程序设计
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
 

Más de FLASH开发者交流会

Introduction to air for android 邱彦林
Introduction to air for android 邱彦林Introduction to air for android 邱彦林
Introduction to air for android 邱彦林
FLASH开发者交流会
 
Swf文件格式和abc代码混淆工具 黄珏坤
Swf文件格式和abc代码混淆工具 黄珏坤Swf文件格式和abc代码混淆工具 黄珏坤
Swf文件格式和abc代码混淆工具 黄珏坤
FLASH开发者交流会
 
Flash 独立游戏开发之路 徐黎明
Flash 独立游戏开发之路 徐黎明Flash 独立游戏开发之路 徐黎明
Flash 独立游戏开发之路 徐黎明
FLASH开发者交流会
 
程序接口的另类理解与使用 孙毅
程序接口的另类理解与使用 孙毅程序接口的另类理解与使用 孙毅
程序接口的另类理解与使用 孙毅
FLASH开发者交流会
 
9月18技术交流会大赛作品介绍 廖湘宁
9月18技术交流会大赛作品介绍 廖湘宁9月18技术交流会大赛作品介绍 廖湘宁
9月18技术交流会大赛作品介绍 廖湘宁
FLASH开发者交流会
 
Flash mmorpg游戏引擎及工具开发概述-张明光
Flash mmorpg游戏引擎及工具开发概述-张明光Flash mmorpg游戏引擎及工具开发概述-张明光
Flash mmorpg游戏引擎及工具开发概述-张明光
FLASH开发者交流会
 
Flash 游戏应用框架和模块化开发 邱广钦
Flash 游戏应用框架和模块化开发 邱广钦Flash 游戏应用框架和模块化开发 邱广钦
Flash 游戏应用框架和模块化开发 邱广钦
FLASH开发者交流会
 
7月24日交流会麻球演讲 廖湘宁
7月24日交流会麻球演讲 廖湘宁7月24日交流会麻球演讲 廖湘宁
7月24日交流会麻球演讲 廖湘宁
FLASH开发者交流会
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
 
Actionscript中的元编程和开发流程解耦(谈熠)
Actionscript中的元编程和开发流程解耦(谈熠)Actionscript中的元编程和开发流程解耦(谈熠)
Actionscript中的元编程和开发流程解耦(谈熠)
FLASH开发者交流会
 
Flash独立游戏 现状分析与发展思考(陈静)
Flash独立游戏 现状分析与发展思考(陈静)Flash独立游戏 现状分析与发展思考(陈静)
Flash独立游戏 现状分析与发展思考(陈静)
FLASH开发者交流会
 

Más de FLASH开发者交流会 (20)

Bambook sdk 与action script
Bambook  sdk  与action scriptBambook  sdk  与action script
Bambook sdk 与action script
 
Bambook开放之路
Bambook开放之路Bambook开放之路
Bambook开放之路
 
Introduction to air for android 邱彦林
Introduction to air for android 邱彦林Introduction to air for android 邱彦林
Introduction to air for android 邱彦林
 
Misato engine hugh_tsai-蔡浩宇
Misato engine hugh_tsai-蔡浩宇Misato engine hugh_tsai-蔡浩宇
Misato engine hugh_tsai-蔡浩宇
 
Swf文件格式和abc代码混淆工具 黄珏坤
Swf文件格式和abc代码混淆工具 黄珏坤Swf文件格式和abc代码混淆工具 黄珏坤
Swf文件格式和abc代码混淆工具 黄珏坤
 
Flash 独立游戏开发之路 徐黎明
Flash 独立游戏开发之路 徐黎明Flash 独立游戏开发之路 徐黎明
Flash 独立游戏开发之路 徐黎明
 
程序接口的另类理解与使用 孙毅
程序接口的另类理解与使用 孙毅程序接口的另类理解与使用 孙毅
程序接口的另类理解与使用 孙毅
 
Flash游戏大会 商文烨
Flash游戏大会 商文烨Flash游戏大会 商文烨
Flash游戏大会 商文烨
 
Flash ria usability 刘轩飞
Flash ria usability 刘轩飞Flash ria usability 刘轩飞
Flash ria usability 刘轩飞
 
9月18技术交流会大赛作品介绍 廖湘宁
9月18技术交流会大赛作品介绍 廖湘宁9月18技术交流会大赛作品介绍 廖湘宁
9月18技术交流会大赛作品介绍 廖湘宁
 
简化复杂的Flash应用程序 谈熠
简化复杂的Flash应用程序 谈熠简化复杂的Flash应用程序 谈熠
简化复杂的Flash应用程序 谈熠
 
Flash mmorpg游戏引擎及工具开发概述-张明光
Flash mmorpg游戏引擎及工具开发概述-张明光Flash mmorpg游戏引擎及工具开发概述-张明光
Flash mmorpg游戏引擎及工具开发概述-张明光
 
Flash 游戏应用框架和模块化开发 邱广钦
Flash 游戏应用框架和模块化开发 邱广钦Flash 游戏应用框架和模块化开发 邱广钦
Flash 游戏应用框架和模块化开发 邱广钦
 
7月24日交流会麻球演讲 廖湘宁
7月24日交流会麻球演讲 廖湘宁7月24日交流会麻球演讲 廖湘宁
7月24日交流会麻球演讲 廖湘宁
 
Flash网络通讯处理 陈苏俊
Flash网络通讯处理 陈苏俊Flash网络通讯处理 陈苏俊
Flash网络通讯处理 陈苏俊
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
Flash 原型开发(刘磊)
Flash 原型开发(刘磊)Flash 原型开发(刘磊)
Flash 原型开发(刘磊)
 
Actionscript中的元编程和开发流程解耦(谈熠)
Actionscript中的元编程和开发流程解耦(谈熠)Actionscript中的元编程和开发流程解耦(谈熠)
Actionscript中的元编程和开发流程解耦(谈熠)
 
Flex开发实践经验谈(谢敏)
Flex开发实践经验谈(谢敏)Flex开发实践经验谈(谢敏)
Flex开发实践经验谈(谢敏)
 
Flash独立游戏 现状分析与发展思考(陈静)
Flash独立游戏 现状分析与发展思考(陈静)Flash独立游戏 现状分析与发展思考(陈静)
Flash独立游戏 现状分析与发展思考(陈静)
 

Avm2虚拟机浅析与as3性能优化(陈士凯)