文档章节

Alchemy初识1

童年伊梦
 童年伊梦
发布于 2012/09/25 12:10
字数 477
阅读 101
收藏 0

笔记:

AVM2:

Adobe Flash 9及之后版本所支持的ActionScript 3是通过ActionScriptVirtualMachine 2(AVM2)来执行的。AVM2把ActionScript Bytecode(ABC)作为输入,并实时编译到处理器特定的指令中。AVM2是目前Flash Player 最新版本11的核心,所有Actionscript 3的代码都只能由AVM2来执行。

Alchemy:

Alchemy是Adobe实验室的一个项目,用于将C/C++编译成可以在AVM2上运行的目标代码.
Alchemy使用的源文件主要是那些具有平台独立性的C/C++代码,运用范围包括音频/视频转码,数据操作,加密/解密数据,XML解析,物理引擎.产生的目标代码比一般的ActionScript(的目标代码)快,但是比C/C++的本地代码慢2到10倍.

1)Alchemy生成的目标代码不是C/C++的本地代码.同ActionScript一样是AMV2的PCode.但是一些指令是Alchemy特有的,可以用于对二进制数据直接进行操作.这是比ActionScript快的原因之一.

2)Alchemy主要的工作是把LLVM指令译为AVM2指令,同时进行一些代码安全性方面的检验.而LLVM指令码是经过编译器优化的.与之相对应的,目前的ActionScript编译器mxmlc是一趟式,快速编译,没有对代码进行任何优化(结果就是产生的PCode与ActionScript有显著的对应关系,swf反编译器能产生高还原度的AS代码).这是另一个比ActionScript快的原因.同时,Alchmey可以用于swf的反反编译应用.

运用Alchemy前必须考虑,C/C++源代码是否平台独立,是否是安全的(是否有IO操作,是否有一些非常规的类型转换操作等等),一句话,代码纯不纯,质量高不高.此外还有接口设计的考虑.

© 著作权归作者所有

童年伊梦
粉丝 1
博文 29
码字总数 21736
作品 0
浦东
私信 提问
Ext.Error: Unable to parse the JSON returned by the server: You're trying to decode an invalid JSON String

Firefox给出的错误 Ext.Error: Unable to parse the JSON returned by the server: You're trying to decode an invalid JSON String: articlelist.jsp {"results":"100","rows":[{"id":"1"......

anonymous_007
2014/05/28
2.4K
2
基于 Alchemy 实现 AS3 与 C++ 交互(1)C++ 回传 Array 给 AS3

基于 Alchemy 实现 AS3 与 C++ 交互(1)C++ 回传 Array 给 AS3 作者:柳大·Poechant 邮箱:zhongchao.ustc@gmail.com 博客:blog.csnd.net/poechang 日期:March 26th, 2012 0 Alchemy 的使......

晨曦之光
2012/04/24
527
0
Adobe Achemy入门指南(一)

1,需要用到的开发工具有:1)Alchemy 2)Cygwin 3)Flex SDK(3.2+) 4)Java(只需要JRE就够了) 5)Flex Builder 2,安装步骤: 1)Alchemy解压缩到c:/alchemy下 2)Flex SDK解压缩到c:/flex下 3)Cy...

嗯哼9925
2018/01/07
0
0
转Elasticsearch顶尖高手系列课程

Elasticsearch,是目前行业中非常热门的一个技术。Elasticsearch是一种分布式的海量数据搜索与分析的技术,可以用于电商网站、门户网站、企业IT系统等各种场景下的搜索引擎,也可以用于对海量...

小花卷juan
2017/06/24
126
0
Flash中实现语音变声(下)

Flash中实现语音变声(下) http://vivimice.blog.163.com/blog/static/16100120111111428742/ 工作 2011-02-11 15:41:25 阅读188 评论12 字号:大中小 订阅 上次我们说到了,语音变声的算法...

付翔
2011/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊Tomcat中的连接器(Connector)

上期回顾 上一篇文章《Tomcat在SpringBoot中是如何启动的》从main方法启动说起,窥探了SpringBoot是如何启动Tomcat的,在分析Tomcat中我们重点提到了,Tomcat主要包括2个组件,连接器(Conne...

木木匠
49分钟前
3
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
1K
20
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
33
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部