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

Mais conteúdo relacionado

Mais procurados

程式人雜誌 -- 2014 年8月號
程式人雜誌 -- 2014 年8月號程式人雜誌 -- 2014 年8月號
程式人雜誌 -- 2014 年8月號鍾誠 陳鍾誠
 
Worktest测试框架原理
Worktest测试框架原理Worktest测试框架原理
Worktest测试框架原理Janeay
 
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)roboard
 
RoBoard 與 Lego NXT Sensors 之連接
RoBoard 與 Lego NXT Sensors 之連接RoBoard 與 Lego NXT Sensors 之連接
RoBoard 與 Lego NXT Sensors 之連接roboard
 
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)Kris Mok
 
Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse EngineeringYC Ling
 
UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)Kris Mok
 
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 20143D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014
3D Printer 關鍵軟體控制技術之分析與探討 @ COSCUP 2014roboard
 
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺宗凡 楊
 
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)wang hongjiang
 
181201_CoAP_coding365
181201_CoAP_coding365181201_CoAP_coding365
181201_CoAP_coding365Peter Yi
 
嵌入式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 ProgrammingAj MaChInE
 
六足機器人超入門簡介
六足機器人超入門簡介六足機器人超入門簡介
六足機器人超入門簡介roboard
 
线程与并发
线程与并发线程与并发
线程与并发Tony Deng
 

Mais procurados (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感測應用
 
线程与并发
线程与并发线程与并发
线程与并发
 

Semelhante a [Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)

Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Harvey Zhang
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Kris Mok
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
探索 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 CNTUGYingSiang Geng
 
分会场二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-mysqlpwesh
 
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽Kito Cheng
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述Xiaozhe Wang
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
Lamp高性能设计
Lamp高性能设计Lamp高性能设计
Lamp高性能设计锐 张
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计Hengyi
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1Jack Wang
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocketpwesh
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalivedcolderboy17
 
高性能LAMP程序设计
高性能LAMP程序设计高性能LAMP程序设计
高性能LAMP程序设计fuchaoqun
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 Lheima911
 

Semelhante a [Flash开发者交流][2010.05.30]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
 

Mais de Shanda innovation institute

[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)Shanda innovation institute
 
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)Shanda innovation institute
 
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)Shanda innovation institute
 
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)Shanda innovation institute
 
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)Shanda innovation institute
 
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)Shanda innovation institute
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)Shanda innovation institute
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)Shanda innovation institute
 
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)Shanda innovation institute
 
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒Shanda innovation institute
 
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)Shanda innovation institute
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)Shanda innovation institute
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)Shanda innovation institute
 
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握Shanda innovation institute
 
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)Shanda innovation institute
 
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)Shanda innovation institute
 

Mais de Shanda innovation institute (20)

[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
 
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
 
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
 
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
 
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
 
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
 
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
 
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
 
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
 
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
 
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
 
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
 
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
 
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
 
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
 
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
 

Último

20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_patternJamie (Taka) Wang
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxNCU MCL
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptxNCU MCL
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】黑客 接单【TG/微信qoqoqdqd】
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptxNCU MCL
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptxNCU MCL
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptxNCU MCL
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven designJamie (Taka) Wang
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLPJamie (Taka) Wang
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxNCU MCL
 

Último (15)

20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_pattern
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
 
20200226 - AI Overview
20200226 - AI Overview20200226 - AI Overview
20200226 - AI Overview
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven design
 
20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 
Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
 

[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)