开源区块链系统aelf性能测试系列文章 AELF vs ETH - 01

  1. 测试用例及代码库
  2. 机器配置
  3. 测试结果
    3.1 EVM
    3.2 AElf
    3.2.1 LoopDivAdd10M
    3.2.2 LoopExpNop1M

近期对标以太坊做了一系列针对测试,在此次测试过程中,我们发现在同一机型上,运行同样的测试用例,aelf的合约执行效率远高于以太坊EVM的合约执行效率。

以太坊的合约执行效率低,一方面因为虚拟机机制和gas费规则带来的一定开销导致效率降低,另一方面因为EVM的256位设计导致合约执行效率更低。

而aelf使用C#的发射机制来调用合约,并且没有多余设计,合约执行效率自然远高于以太坊的合约执行效率

1.Test case and Code

以下是对标以太坊 loop-DivAdd-10M.json 和 loop-exp-nop-1M.json的测试情况

ETH: 基于官网go实现版本
https://github.com/ethereum/go-ethereum?
AELF: 基于官方C#实现版本
https://github.com/AElfProject/AElf

测试用例,对标ETH的标准测试:
https://github.com/ethereum/tests/tree/develop/src/VMTestsFiller
对应aelf测试用例:
https://github.com/AElfProject/AElf/blob/dev/bench/AElf.Benchmark

2.机器配置

Test Enviornment:
OS=ubuntu 16.04
QEMU Virtual CPU, 2 CPU, 2 logical and 2 physical cores
CPU MHz: 2194.916; cache size : 16384 KB

AElf Test Environment:

BenchmarkDotNet=v0.11.5
.NET Core SDK=2.2.203
[Host] : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG

3.测试结果

LoopDivAdd10M:EVM耗时为aelf的169倍,差两个数量级
LoopExpNop1M:EVM耗时为aelf的1223倍,差三个数量级

3.1 EVM

官方go实现版本的自带测试程序执行结果

LoopDivAdd10M:14.236813572s
LoopExpNop1M: 639.16568ms

3.2 AElf

LoopDivAdd10M:84.01ms
LoopExpNop1M: 522.5us

3.2.1 LoopDivAdd10M

除法加法循环一千万次

方法

public override DoubleValue LoopDivAdd(DivAddTestInput input)
{
    var r = input.X;
    for (uint i = 0; i < input.N; i++)
    {
        r /= input.Y;
        r += input.K;
    }
    return new DoubleValue {Value = r};
}

输入

new DivAddTestInput()
{
    X = 100,
    Y = 300,
    K = 500,
    N = 10000000
}

执行结果:

3.2.2 LoopExpNop1M

方法

public override Int32Value LoopExpNop(PerformanceTesteInput input)
{
    for (uint i = 0; i < input.N; i++)
    {
    }
    return new Int32Value {Value = input.Seed};
}

输入

new PerformanceTesteInput()
{
    Exponent = 0,
    Seed = _executeResult,
    N = 1000000
}

执行结果:

原文地址:https://www.cnblogs.com/loning/p/10851968.html

时间: 2024-11-05 18:47:33

开源区块链系统aelf性能测试系列文章 AELF vs ETH - 01的相关文章

2.5星|《数字货币:世界为我疯狂》:5年来《商业周刊》的区块链与比特币相关的文章16篇

商业周刊/中文版:数字货币:世界为我疯狂 这本书是2013年以来<商业周刊>上的区块链与比特币相关的文章的合集共16篇,大部分内容现在看文献价值更大. 总体评价2.5星,参考价值不大. 以下是书中一些内容的摘抄,#号后面是kindle电子版中的页码: 1:2010年,他不小心从电脑中删去了800个比特币,若放到今天,其价值将超过640万美元.但实际上Kenna并没有特别的沮丧:我还有很多,在当初每个20美分的时候,我买了5,000个.#29 2:近几个月里,黑客已经成功地实施了多次比特币抢劫,

爆炒区块链3.0概念,EOS想超ETH(以太坊),没那么简单!

2017年6月25日,EOS开始上线众筹,时间为一年!也就是说,EOS众筹结束时间要到2018年6月.自EOS众筹以来,炒得最多的就是区块链3.0概念,比如要超越以太坊,要做真正的区块链操作系统-- 那么,这个目前还在概念中的EOS,真的可以取代以太坊吗?我们一起来看看. 一.从以太坊说起 Ethereum(以太坊)是由俄罗斯人Vitalik Buterin于2014年创建的开源区块链平台,用户可以使用它来创建和发布去中心化的应用程序.Ethereum可以用来编程,分散,担保和交易任何事物:投票

区块链系统,探讨区块链系统的奥秘

区块链系统开发,区块链商城开发,区块链软件开发,区块链平台开发,区块链游戏开发,区块链APP开发,区块链技术,区块链系统小程序开发,区块链模式开发,区块链系统搭建,区块链系统源码. 区块链是去中心化的,并不意味着这个世界上只能有区块链.未来,去中心化的区块链网络与中心化的传统互联网是可以和谐共处.合作共赢的,中心化机构可以作为普通的参与方接入区块链,为区块链网络上的用户提供专业化的服务. 区块链系统模式解析: 1.数字资产系统:公共区块链是一系列共识区块,可供世界上任何人阅读,发送和验证.私有区

四大区块链开源平台对比,中国BCOS如何立足?

近年来,以多方参与.智能协同.与价值分享等为主要特征的分布式商业逐渐兴起,区块链和分布式账本等技术实现了分布式商业中的对等.共享与透明规则,逐渐获得认可,并成为了前沿金融科技的核心代表,同时也越来越受到政府机关和国际组织的重视.在国务院印发的<"十三五"国家信息化规划>中,区块链技术亦被首次列入,迎来重大的发展机遇. 2017年7月31日,深圳前海微众银行.上海万向区块链股份公司.矩阵元技术(深圳)有限公司联合宣布将三方研发的区块链底层平台BCOS(BlockChainOp

区块链性能测试工具caliper

Caliper是一个区块链性能测试框架,可用于测试不同的区块链实现.支持 fabric v1.0+ sawtooth 1.0+ Iroha 1.0 测试内容指标包括: 交易成功率 交易吞吐量TPS 交易延迟 资源消耗 感受一下先 准备 先安装NodeJS 8.X.node-gyp.Docker.Docker-compose. git clone https://github.com/hyperledger/caliper.git cd caliper npm install 安装区块链SDK(以

EOS区块链游戏系统定制开发

EOS区块链游戏系统定制开发 找131.2935.5821 微/电 EOS生态app系统开发,EOS区块链技术系统开发,EOS生态游戏app开发 自区块链成为热潮之后,很多公司都义无反顾地扑向了这项新技术,这其中,一部分是随时都会被风吹跑的投机派,而另一派则是实实在在想用区块链这项技术干实事的人. 2018年是区块链应用落地的元年,那么今年区块链在全球迅速升温,各个国家相继出台区块链数字货币的相关政策,甚至已经用于银行的贷款或者转账等等.同时在这个迅速发展的领域也迎来了新的突破--EOS. EO

区块链多币种钱包app系统开发,交易所系统开发

区块链钱包到底是什么呢? 简单来说,区块链钱包就是基于区块链技术的电子钱包.和我们普通钱包不同的是,区块链钱包里装的不是钱,而是密钥(私钥和公钥)的工具.有了密钥就可以拥有相应地址上的区块链资产的支配权. 钱包系统开发 Tel: 13823153201 Q/:2756126100 区块链钱包是一个密码钥匙(简称密钥)的管理器,密钥包括公钥和私钥.用户使用私钥进行签名交易,从而证明拥有该交易的输出权.但是该交易信息并不是存储在该钱包里,而是存储在区块链当中. 区块链钱包APP有哪些功能特点? 钱包

公链系统开发,主链系统开发,区块链开发

公有区块链 公有区块链是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程.公有区块链是最早的区块链,也是应用最广泛的区块链,各大系列的虚拟数字资产均基于公有区块链,世界上有且仅有一条该币种对应的区块链.公链系统开发 Tel: 前面138中间2315后面3201 公有链有几个特点: 1.访问门槛低,任何一个有计算机并且能联网的人都可以访问: 2.所有数据公开透明.无法篡改,公有链是高度去中心化的分布式账本,任何节点的行为都是可以查看的,而且篡改

[易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]

项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的角度上来说,区块链,就是区块组成的链. 以下就是BTC区块链典型的结构: 那最小单元就是区块:block. 这个block包含两部分:区块头,区块体. 我们先忽略Merkle树,先简化所有数据结构,只保留最基本的数据结构. 那区块头,就包含:时间截:前一个区块地址 区块体,就包含交易数据,我们用一个vector来存储. 代码如下 : ///交易结构体 #[derive(Clone, Hash,