我网站上有大量的用户对象,每个对象都包含一个论坛列表,表示该用户管理的所有论坛。我创建了一个页面,在该页面上,将显示所有管理论坛的用户以及所有论坛名称的分页列表。
例如:
我尝试了以下几种方法来加快处理速度,但它们都需要很长时间(太长)。
每个页面包含15个用户
当所有15个用户每个人都包含大约3个主题时,加载页面需要大约1秒钟。如果有一个用户包含100多个主题的话,页面加载时间会激增到接近20秒。
使用线程技术可以加速吗?
例如:
Travis - FTB, SCR, SWM, BSB
Tom - FTB, SCR, SWM, BSB, TRK, BSK
然而,有些用户可能会管理超过300个不同的主题,这导致页面处理时间变得非常长。我尝试了以下几种方法来加快处理速度,但它们都需要很长时间(太长)。
//Join
topicString = String.Join(", ", user.Topics)
(note that Topics.ToString returns a 3 character ID)
//StringBuilder
StringBuilder stringBuilder = new StringBuilder(3*user.Topics.Count() + 2*user.Topics.Count());
foreach(var topic in user.Topics) {
stringBuilder.Append(topic.Code);
stringBuilder.Append(", ");
}
codes = stringBuilder.ToString();
codes = codes.Remove(codes.Length-2);
//Classic concatenation
foreach(var topic in user.Topics) {
codes += topic.Code;
codes += ", ";
}
codes = codes.Remove(codes.Length-2);
每个页面包含15个用户
当所有15个用户每个人都包含大约3个主题时,加载页面需要大约1秒钟。如果有一个用户包含100多个主题的话,页面加载时间会激增到接近20秒。
使用线程技术可以加速吗?
var sw = new System.Diagnostics.Stopwatch(); sw.Start();
,并在之后使用sw.Stop(); var time = sw.Elapsed.TotalSeconds;
。我的猜测是字符串连接甚至不会超过1秒钟。 - NightOwl888