首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用异步任务的BenchmarkDotNet

使用异步任务的BenchmarkDotNet
EN

Stack Overflow用户
提问于 2018-03-28 22:00:04
回答 1查看 2.9K关注 0票数 3

我正在尝试运行以下代码:

代码语言:javascript
复制
public class Parsing
{
    private const string Url ="blabla";
    private static HttpClient client = new HttpClient();

    private static Task<string> newton = ParseNewton();
    private static Task<string> servicestack = ParseServiceStack();

    [Benchmark]
    private static async Task<string> ParseNewton()
    {

        var response = client.GetAsync(Url).Result;

        var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);

        var serializer = new Newtonsoft.Json.JsonSerializer();

        using (var sr = new StreamReader(stream))
        using (var jsonTextReader = new JsonTextReader(sr))
        {
            return serializer.Deserialize<string>(jsonTextReader);
        }

    }

    [Benchmark]
    private static async Task<string> ParseServiceStack()
    {

        var response = client.GetAsync(Url).Result;

        var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);

        return ServiceStack.Text.JsonSerializer.DeserializeFromStream<string>(stream);

    }
}

我的电话是

代码语言:javascript
复制
internal class Program
{
    public static void Main(string[] args)
    {
        var summary = BenchmarkRunner.Run<Parsing>();

        Console.ReadKey();
    }
}

我非常确定我做错了很多事情(因为它不工作);我总是收到消息No Benchmark found,并且从我发现的样本中我找不到如何使它工作。

我想将NewtonSoft和ServiceStack给出的url中相同的响应反序列化1000次,并从中获得一个很好的基准。我如何才能让这段代码工作,我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 22:13:18

类和方法都需要是公共的,不能是静态的。类也不能是密封的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49536585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档