【问题标题】:Tipps for a better performance on a C# code在 C# 代码上获得更好性能的提示
【发布时间】:2020-05-11 17:40:18
【问题描述】:

我写了一个小程序来计算 Steam 市场中一些物品的总价值。一切正常,但程序需要大约 2 分钟才能启动,这是因为获取商品价格需要一些时间。 现在我想知道我是否可以稍微更改代码以优化程序,这样启动就不需要 2 分钟,也许 1 或更少会很棒。

在与我获取价格的网站的每次连接之间,我必须等待几秒钟(大约 3.5 秒似乎是最好的),否则我会因为请求太多而出错,所以这是一个我认为我无法真正改变的事情。

这是我从网站上获取价格的方式:

string urlsteammarkt = "https://steamcommunity.com/market/priceoverview/?appid=730&currency=3&market_hash_name=";
string Chroma()
        {
            WebClient chroma = new WebClient();
            //get the informations
            srcChroma = chroma.DownloadString(urlsteammarkt + "Chroma%20Case");
            //cute out the min price
            srcChroma = srcChroma.Remove(0, 32);
            srcChroma = srcChroma.Remove(srcChroma.IndexOf('\\'));
            //replace -- when it's a round price (e.g. 13€ will be displayed as 13,--)
            srcChroma = srcChroma.Replace("--", "00");

            return srcChroma + "€\n";
        }

代码太长,下面是其余代码: https://pastebin.com/ZrTqjMd0

【问题讨论】:

  • 如果你这么关心性能,你为什么要使用WebClient?根据其文档,当 HttpClient 在 2012 年与 .NET 4.5 一起引入时,它就已经过时了,从那时起就不再使用了。
  • 如果您为每个可能导致速度变慢的项目发出新的 Web 请求。也许研究如何在单个请求中查询所有商品的价格。
  • This 不仅仅是一个程序。这是复制粘贴的杰作! :-)

标签: c# performance


【解决方案1】:

首先:您实际上是在告诉您的程序进入睡眠状态(只是等待,什么也不做)。

而且你需要学习编程,尤其是 oop (https://www.w3schools.com/cs/cs_oop.asp)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多