加载中
cheerp 编译器之通用计算模块ccm1

cheerp 通用计算模块(ccm1) 是基于cheerp 编译器发射出平台格式无关的wasm中间代码,在不同宿主之内运行的一种模块化方式。 0x1. 不同宿主的相同代码实现 ccm1 的一般宿主是c++实现,不同平台...

CCM1 通用计算模块fibonacci 性能对比

#include int fab (int n) { if(n == 1||n ==2) { return 1; } return fab(n-1) + fab(n-2); } int main() { for(int i = 2; i<= 40; i++) { printf(fab(i)); } return ......

gcc
2021/03/22 17:06
235
redis 微应用镜像

suma redis 微应用镜像是基于 redis 5.0 源代码进行二次开发的一个redis 微容器集群镜像。 在原有reids 命令的基础上增加了suma apollo微容器相关的命令 sumavlib.suma_ci_task sumavlib.sum...

2020/07/08 11:53
191
cheerp 使用事件的例子

这个文章主要描述在cheerp环境下, c++代码如何通过js包装使用dom事件 1 what?事件 事件作为js异步编程的核心,很好的把逻辑分散开来,形成各个处理的handler。 首先事件的目标和当前目标都...

[shen编译器] 实现连续内存赋值

在wasm线性内存中,如果要实现连续内存赋值, 有两种方案。 如果使用偏移量的话,只需要控制偏移的空间的地址。 如果自己管理内存的话, 需要维护一个全局的pc控制内存增长。 偏移量的方案,...

2020/10/23 10:55
145
[shen编译器] 扩展一个ide的语法

研究了一天, 发现完全可以满足我想要的, 可以大大的提升我的工作效率。 简单配置了一下。 钟元大老爷@ 阿幻星球 足下八邦

2020/10/15 17:14
88
openn2o template.js 说明文档

最快的js 模板引擎, 每秒可达500万次渲染 可在node和浏览器端使用。 node批量编译示例 ------------- m1.html 模板文件 {# m1 hbox 横向滚动抽屉 #}...

[shen编译器] object对象更新属性性能

对象更新属性其实就是一个存取过程, 在object 对象中, 是直接覆盖掉的。以前看过nekovm 的对象存取和更新的代码, 使用二分查找线性表,速度的话比较低下。 每秒也就几百万次更新, 我们使...

2020/10/10 11:49
96
[shen编译器] object对象存取发 射实例

期望: 原始代码: local a = {} a[1] = 10; a[2] = 20; a[3] = 30; a[4] = 40; a[5] = 50; a[6] = 60; a[7] = 70; a[8] = 80; a[9] = 90; a[10] = 100; print(a[1]); print(a[2]); print(a...

js之优化

1 首先计算密集型的任务不要集中在某一个时间段来做, 否则会导致该时间片的帧负载过高,产生热点继而阻塞。 所以可以通过 setTimeout 对任务进行分片和离散。 比如处理10万个数据, 可以切片...

2020/09/30 14:11
150
object 的键值访问低效原因

> > 最近在编译器,发现之前的一个疑问被解开了,在javascript中,object的键值访问为什么比数组的下标访问性能差了10倍。 > 首先我们考虑的是实现一个数组,其实就是实现一个连续的内存块,...

实现 fastlz交叉编译到浏览器

1 首先先写胶水定义压缩和解压两个接口给js #define uint8 unsigned char #define size_t unsigned long long #define __MAX_FILE_SIZE__ 1024*1024*10 #define DEBUG 1 using namespace cli...

2020/09/29 17:20
107
[shen编译器] 发射散列算法一枚

经过不断的改进和重试,修正了一些错误。 发射一个简单的散列函数, 用于内部使用。 输入参数是 ptr 字符串首地址和字符串长度, 输出一个 hash code (func $hash (param i32 i32) (result ...

2020/09/29 17:11
90
[shen编译器] 字符串比较指令发射代码记录

昨天实现了字符串的存储, 今天给字符串增加一个内置的比较指令, 该指令应该是调用了一个 函数 返回 bool 输入源代码如下 local a = "hello" local b = "world" if a == b then print_s("a ...

2020/09/28 16:08
91
hello world发射记录

实现了输出字符串的api 。 并且脱离数据存储字符串。 (module (type (;0;) (func (param i32 i32))) (type (;1;) (func (param i32))) (type (;2;) (func (param f64))) (type (;3;) (func ...

2020/09/27 16:40
60
第一个累加计算发射记录

shen vm 解释执行字节码, 1亿次累加计算发射。 耗费时长 : 300ms (result f64) (local i32 i32) ;; KSHORT i32.const 0 f64.const 0.0 f64.store ;; KNUM i32.const 8 f64.const 100000001...

gcc
2020/09/24 10:11
57
loop 循环发射

loop 循环发射成功, 生成的中间代码记录一下。 (module (type $t0 (func (param f32))) (type $t1 (func (param f32 f32))) (type $t2 (func (result f32))) (import "console" "log" (func...

2020/09/23 13:16
66
max 函数发射

shen 编译器发射第一个函数 ,流泪,经过一天的努力, 终于可以发射出一个内部函数调用的示例。 (func $m0 (export "max") (param f32)(param f32) (result f32) (local i32 i32 i32 i32 i3...

2020/09/15 21:58
78
frist blood

今天, shen 编译器成功发出内联函数调用的中间码了。 谢谢我自己。 (import "console" "log" (func $print_1 (param f32))) (import "console" "add" (func $push (param f32) (param f32)...

2020/09/14 17:57
72
顺序查找实现

(module (memory 1) (func (export "find") (result i32) (local i32 i32 i32) ;; eax ebx ecx i32.const 0 i32.const 11 i32.store i32.const 1 i32.const 22 i32.store i32.cons......

2020/08/27 11:58
41

没有更多内容

加载失败,请刷新页面

返回顶部
顶部