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

Posted loning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源区块链系统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
}

执行结果:
技术图片

以上是关于开源区块链系统aelf性能测试系列文章 AELF vs ETH - 01的主要内容,如果未能解决你的问题,请参考以下文章

aelf周报30期多资产合约及区块链浏览器多链切换已完成,脚本已兼容Windows环境,集成测试按计划推进中

高性能的跨链“新公链” aelf,能否为竞争公链找到新的突围方向?

技术点解读 | aelf共识标准设计

技术点解读 | aelf共识标准设计

aelf Enterprise 0.9.2 版正式发布

aelf技术点解读 | AEDPoS合约实现逻辑