主页 > imtoken苹果闪退 > 为什么 Dipperin WASM 虚拟机性能优于 EVM?

为什么 Dipperin WASM 虚拟机性能优于 EVM?

imtoken苹果闪退 2023-03-14 07:12:55

作为金融公链的探索者,Dipperin一直专注于帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,支持用户成为区块链价值的创造者和分享者,释放区块链在金融领域的价值。具有广泛的商业应用价值。

2019年8月21日,Dipperin测试网Venus在主网上线前正式启动测试,主要包括创新的经济模型、高效的智能合约二代WASM虚拟机,以及多款供开发者测试使用的DApp。 这些技术创新使得Dipperin拥有比以太坊更高的TPS、快速的区块确认、更快的智能合约运行速度。

sitebitcoin86.com 以太坊以太经典_以太坊内存_以太经典和以太坊统一

金星测试网浏览器

随着以太坊的出现,以太坊虚拟机EVM是在比特币网络结构的基础上开发的,使用solidity语言可以完成图灵完备的编程。 越来越多的项目在以太坊公链上募集资金以太坊内存,因为项目方的发币问题可以使用以太坊轻松解决。 每条公链都以开源社区的形式运作。 建立新的语言和虚拟机就像建立一个新的开发者系统。 大多数项目不会选择开发新的语言和虚拟机。 大部分公链使用的都是EVM,直接COPY了以太坊的效果以太坊内存,但不可避免的也带过来了EVM虚拟机的缺点。

Dipperin在项目之初就意识到以太坊EVM和solidity的局限性,继而深入理解公链底层链网络、上层解释器和开发语言,并在可扩展性、稳定性和可扩展性方面不断创新。运行效率。 . 随着测试网 Venus 的上线,我们在同一环境下测试了 Dipperin WASM 虚拟机和 EVM 的性能。

结果令人震惊。 事实证明,Dipperin 智能合约的执行效率远高于以太坊 EVM。 以太坊使用 256 位机器码,这会极大地影响性能并增加内存使用量。 做1000万次除法和加法,Dipperin智能合约的运行时间是以太坊智能合约的1/6,内存占用是1/700。

以太坊内存_sitebitcoin86.com 以太坊以太经典_以太经典和以太坊统一

Dipperin 和以太坊智能合约运行 1000 万次除法和加法的性能比较

1.测试环境

在以太坊源码中,利用其已有的vm性能测试用例,选择loop-divadd-10M测试用例,使用pprof工具分析其vm性能和内存使用情况。

sitebitcoin86.com 以太坊以太经典_以太经典和以太坊统一_以太坊内存

在Dipperin-core中也编写了10M次的除法和加法测试,生成cpu和内存相关的profile图,并与EVM进行对比。

2、测试结果对比

(1) 测试EVM性能

EVM执行loop-divadd-10M测试时的cpu profile图如下:

以太经典和以太坊统一_sitebitcoin86.com 以太坊以太经典_以太坊内存

EVM内存剖面图如下:

以太坊内存_以太经典和以太坊统一_sitebitcoin86.com 以太坊以太经典

测试执行时间:8.31890013s

(2)测试Dipperin WASM虚拟机

在Dipperin-corevm中测试loop-divadd-10M,合约源码如下:

以太坊内存_sitebitcoin86.com 以太坊以太经典_以太经典和以太坊统一

pprof生成的cpu profile图如下:

sitebitcoin86.com 以太坊以太经典_以太经典和以太坊统一_以太坊内存

测试合约执行时间为:1.607514228s

pprof生成的memory profile图如下:

sitebitcoin86.com 以太坊以太经典_以太经典和以太坊统一_以太坊内存

试验结果:

sitebitcoin86.com 以太坊以太经典_以太经典和以太坊统一_以太坊内存

三、测试结果分析

通过对比测试数据可以看出,还进行了10M的除法和加法运算。 WASM 虚拟机的执行时间比 EVM 小。 通过分析测试执行生成的cpu和内存profile程序可以看出。 在执行除法和加法运算时,EVM之所以会消耗更多的时间和内存,主要是因为EVM的底层操作码使用了u256(256bit),其256bit的基本数据类型是通过big.int包实现的。 Big.int 相关操作会消耗更多的 CPU 和内存资源。 这一直是EVM被诟病的地方。

这从EVM加法操作码可以清楚的看出:

sitebitcoin86.com 以太坊以太经典_以太坊内存_以太经典和以太坊统一

当然,由于在 WASM 测试中没有使用 big.int 操作,所以测试合约的内存消耗比 EVM 小很多。 如果在WASM中使用vm import的big.int相关操作,可以想象内存消耗会大很多。

4.总结

对比合约数据长度可以看出,Dipperin WASM vm需要在链上保存合约字节码和abi数据,因此其对链上存储资源的占用略高于EVM。 EVM在将合约编译成字节码时,通过hash获取函数签名,并将函数签名信息保存在字节码中,也在一定程度上节省了链上的存储空间。 当然,这也使得用户无法通过合约地址查询到该合约在链上的abi信息。 也就是说,如果合约创建者不发布已部署的合约,用户就无法获取其abi信息,也就无法调用合约函数。 唯一的办法就是逆向存储在链上的字节码。

据悉,Dipperin成立于2018年,专注于打造金融公链基础设施,帮助用户快速、安全、低成本地部署区块链应用和商业智能合约,搭建区块链与实体商业社会的桥梁。返回搜狐查看更多