C# 如何使用C语言高效地计算社会份额#

C# 如何使用C语言高效地计算社会份额#,c#,asp.net-mvc,social-media,C#,Asp.net Mvc,Social Media,我正在使用asp.net Mvc-3 C#开发分类广告web应用程序 每个广告都可以在facebook、twitter、google plus、linkedin等社交媒体上分享 我正在计算广告在这些网站上的共享次数,并将此记录保存在数据库中 使用此函数 string jsonString = new System.Net.WebClient().DownloadString(URL-of-ad); var serialize= new System.Web.Script.Serializat

我正在使用asp.net Mvc-3 C#开发分类广告web应用程序

每个广告都可以在facebook、twitter、google plus、linkedin等社交媒体上分享

我正在计算广告在这些网站上的共享次数,并将此记录保存在数据库中

使用此函数

 string jsonString = new System.Net.WebClient().DownloadString(URL-of-ad);
 var serialize= new System.Web.Script.Serialization.JavaScriptSerializer();
 var dictionary = serialize.Deserialize<Dictionary<string, string>>(jsonString);
 var twitter = dict["count"];
 var facebook= dict["share_count"];

// calculating for other website by this function
string jsonString=new System.Net.WebClient().DownloadString(广告的URL);
var serialize=new System.Web.Script.Serialization.JavaScriptSerializer();
var dictionary=serialize.Deserialize(jsonString);
var twitter=dict[“count”];
var facebook=dict[“共享计数”];
//通过此功能为其他网站计算
这是一个很好的函数,但是对于每个广告来说都非常耗时。我有上千个广告,所以我必须循环上千次,为每个广告调用这个函数

我一天调用这个函数两次

还有其他更好更快的方法来完成这项任务吗


请给出您的建议。

您可以考虑改进您的设计

1-创建一个Windows服务,并将其设置为每天运行两次,最有可能的是确定站点上的流量何时非常小

2-将共享计数逻辑移动到windows服务中,windows服务将在另一个进程中执行此操作,并释放您的主应用程序

3-下载取决于网络速度的内容,因此让yopur下载异步而不是同步。

一些建议:

  • 并行运行此操作,例如使用、传入add的URL或异步版本,例如。两者都将同时运行多个下载
  • 加载显示添加的页面时运行此操作。加载add,然后对服务器执行web服务调用,以获取
    计数
    共享计数
    。这可能是一个多一点的工作,但它将更及时,如果每个添加很少显示,这可能是更有效的
  • 我假设您在页面创建期间没有运行此功能,但是,如果您是,请按照Saurabh的建议将其移动到单独的服务或进程