【发布时间】:2020-05-11 17:40:18
【问题描述】:
我写了一个小程序来计算 Steam 市场中一些物品的总价值。一切正常,但程序需要大约 2 分钟才能启动,这是因为获取商品价格需要一些时间。 现在我想知道我是否可以稍微更改代码以优化程序,这样启动就不需要 2 分钟,也许 1 或更少会很棒。
在与我获取价格的网站的每次连接之间,我必须等待几秒钟(大约 3.5 秒似乎是最好的),否则我会因为请求太多而出错,所以这是一个我认为我无法真正改变的事情。
这是我从网站上获取价格的方式:
string urlsteammarkt = "https://steamcommunity.com/market/priceoverview/?appid=730¤cy=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