• benchmarkdotnet docker 运行


    使用docker 运行基准测试是一个不错的选择,可以减少我们环境搭建的时间,同时也可以加速ci/cd

    环境准备

    • docker-compose 文件
    version: "3"
    services: 
      app-benchmark:
        build: 
          context: ./
          dockerfile: Dockerfile-benchmark
        image: dalongrong/dotnetcorebenchmark-demo:alpine
    • dockerfile
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
    WORKDIR /app
    COPY benchmark/*.csproj ./
    RUN dotnet restore
    COPY benchmark/. /app/
    ENTRYPOINT [ "dotnet","run","-c","Release" ]

    代码准备

    注意target版本dotnetcore2.0

    • 创建demo项目
    mkdir benchmark
    cd benchmark
    dotnet new console
    • 添加依赖库
    dotnet add package BenchmarkDotNet
    • 简单demo
    using System;
    using System.Security.Cryptography;
    using BenchmarkDotNet.Attributes;
    using BenchmarkDotNet.Running;
    namespace MyBenchmarks
    {
        public class Md5VsSha256
        {
            private const int N = 10000;
            private readonly byte[] data;
            private readonly SHA256 sha256 = SHA256.Create();
            private readonly MD5 md5 = MD5.Create();
            public Md5VsSha256()
            {
                data = new byte[N];
                new Random(42).NextBytes(data);
            }
            [Benchmark]
            public byte[] Sha256() => sha256.ComputeHash(data);
            [Benchmark]
            public byte[] Md5() => md5.ComputeHash(data);
        }
        public class Program
        {
            public static void Main(string[] args)
            {
                var summary = BenchmarkRunner.Run<Md5VsSha256>();
            }
        }
    }
     
     
    • demo 的benchmark.csproj
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp2.0</TargetFramework>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="BenchmarkDotNet" Version="0.11.5" />
      </ItemGroup>
    </Project>
     

    构建&&运行

    • 构建
    docker-compose up 
    • 效果

    参考资料

    https://github.com/rongfengliang/aspnetcore-webapi-docker-compose-demo
    https://benchmarkdotnet.org/articles/guides/how-to-run.html
    https://github.com/dotnet/BenchmarkDotNet

  • 相关阅读:
    tensorflow_知识点
    Win10 1803 谷歌内核浏览器出现假死现象的解决方法汇总
    今日笑话
    留存率例子(待优化)
    安装ODOO13
    freepascal获取进程列表
    vba给图片添加logo
    wps中开始支持javascript了
    获取本地ip
    判断素数
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11343750.html
Copyright © 2020-2023  润新知