.net web应用程序要提升并发性能,我个人目前是从三个方面入手的(这里不包括前端的性能提升,前端的性能可以参考网站上不少优秀的文章)
1. 利用iis 提升
(1) 启用gzip压缩,可以有效的减少服务器与客户端之间的流量,经过我的实际项目中的数据测算,至少可以压缩到原数据的 1/4 左右,大大提升了客户的体验。
(2)启用内容过期,启用内容过期可以把很多静态的图片,js , css等缓存在客户端的浏览器端,如果有更新,那客户端的浏览器会只请求更新的内容。
2. 应用程序缓存
使用 HttpRuntime.Cache 缓存应用程序数据,如下: 缓存该数据2分钟,2分钟后替换新数据
经过实际项目测算,原先单服务器每秒的并发请求数200左右,但是使用了缓存之后,每秒的并发请求数为2000左右, 能提高效率 十几倍 并发吞吐量 ,都足够支撑起一个中型网站了。 当然大型网站肯定要使用服务器集群的。
public async Task< IHttpActionResult> GetDiseaseInfos()
{
var cached = HttpRuntime .Cache["PatientCase_GetDiseaseInfos"];
if (cached == null )
{
var array = "";
HttpRuntime.Cache.Insert("PatientCase_GetDiseaseInfos" , array, null, System.Web.Caching.Cache .NoAbsoluteExpiration, new TimeSpan(0, 0, 10));
}
return Ok(HttpRuntime .Cache["PatientCase_GetDiseaseInfos"]);
}