cheerp 简介
这个文章主要介绍了为什么要用cheerp技术以及和其他对标的技术对比,他的闪光点在哪里。
WebAssembly 是一种中间码用于加速浏览器端应用,目前有多种语言可以编译或者交叉到这种格式。当然这个不是本文的内容,详细了解请移步 wasm官网
目前支持:
cc++是官方推荐的方式,详细使用见文档;
其他语言
- AssemblyScript:语法和 TypeScript 一致,对前端来说学习成本低,为前端编写 WebAssembly 最佳选择;
- Rust:语法复杂、学习成本高,对前端来说可能会不适应。详细使用见文档;
- Kotlin:语法和 Java、JS 相似,语言学习成本低,详细使用见文档;
- Golang:语法简单学习成本低。但对 WebAssembly 的支持还处于未正式发布阶段,详细使用见文档。
cheerp:
cheerp技术是基于llvm的一个交叉工具技术集合, 目前可以支持到的交叉
c/c++到javascript/asm.js/wasm的功能完备的的可移植方案。
笔者从2014年开始就接触cheerp至今, 一直对这个技术抱有极大的热情。
对比emcc(不懂自行百度)优势和劣势。
优势:
- cheerp代码更加简单, 环境配置也简单。
- 完备的C++14支持。
- 编译后拥有更小的体积(内存模型)
- 更容易的混合编程(c++,js,wasm)
- 更快的性能
- 可以支持降级方案
缺点: 几乎是唯一也是致命的缺点,没有对应的文档。
对比其他交叉到wasm的方案
- LLVM AOT支持
- 本地数学库支持
- 交织流水线优化
- 更短的指令集合
- 更适合大型项目
- 无差别融合asm.js/js库
- 超越30%的性能
性能:
c/c++开启优化1200ms >
wasm 1990ms >
c/c++未开启优化 2400ms >
asm.js 2600ms >
node.js 2900ms >
luajit 4500ms>
lua5.2 34000ms
by 钟元 agent.zy@aliyun.com
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
12亿行代码,阿里巴巴这一年的技术报告和梦想报告
78年前,图灵用代码编译出的情报破解系统,让二战至少提前2年结束,挽救了2000万人的生命;50年前,登月科学家敲下的一行关键代码,启动了阿波罗号的着陆,成就了人类的一大步;30年前,蒂姆·伯纳斯·李利用代码创造了万维网,让普通人也能够通过互联网连接全世界……如同数字世界的艺术家、数字文明的建筑师,各个时代的工程师科学家们正在用一行行代码改变世界。阿里巴巴是这个时代的技术追梦人。2019年1月9日,阿里巴巴公布了其2018年度代码报告。报告显示,阿里工程师在2018年共写下了12亿行代码,总代码长度可绕地球4.49圈。 代码是IT行业的根基和基础。人们熟悉的Windows操作系统,是有史以来最复杂的软件之一,其总代码数大约为5000万行。这意味着,阿里工程师一年写下的代码总数相当于24个Windows的开发量。 在代码语言规范上的努力
- 下一篇
c++API类库
C++ referenceC++98, C++03, C++11, C++14, C++17 ASCII chartCompiler support Language PreprocessorKeywordsOperator precedenceEscape sequencesFundamental types Headers Library concepts Utilities library Type supportDynamic memory managementError handlingProgram utilitiesDate and timebitsetFunction objectspair−tuple(C++11)integer_sequence(C++14)optional(C++17)−any(C++17)variant(C++17) Strings library basic_stringbasic_string_view(C++17)Null-terminated byte stringsNull-terminated multibyte stringsNul...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能