9.缩小图片
在理想状态下,你的网站根本不会包含任何图片。通常情况,矢量图片会比各种真彩图片要小许多,因此如果使用inline-SVG和CSS的技巧来为你的网页创建矢量图的话,效率会非常高。然而事实上却不能完全是这样,因此,你必需进行一些缩小图片的工作。虽然要搞清楚各种正确的编码设置着实不容易,但是我们可以借助像tinypng之类的服务(请参见https://tinypng.com/)来达到目标。另外,它的logo是一只非常可爱的熊猫。
10.检查你的查询
各种对象关系映射(object-relational mappers,ORM)已经对开发人员的生产力起到了提升作用,但它们只是提供了优化查询的一个抽象层。当你可能会有N+1个选择错误、或是从服务器获取了太多的数据时,只有通过Prefix才能够突显具体的次数。你会惊奇地发现通过使用预先加载、而非延迟加载,以及检查各种预测值,问题就会变得非常容易解决。当然,微软对于优化实体框架(Entity Framework,EF)的各种SQL调用,也有一些独到的建议,请参见:https://msdn.microsoft.com/en-us/library/hh949853(v=vs.113).aspx。
11.缓存你的页面
通常情况下,你网页上的数据会随着时间的推移而缓慢发生变化。比如说:在Stack Overflow(译者注:是一个技术问答网站。用户可以在该网站上免费创建主页、提交问题、浏览问题、索引相关内容。)上的那些热点问题的页面会实时地被更新,但是其数据的变化并不够显著,不至于触发对数据库的重新查询。因此我们没有需要去调整数据库、并对复杂的页面进行重新渲染,而是可以将该网页推送到缓存队列中,并使用这些数据来响应后续的请求。
如果你碰巧使用着ASP.NET的MVC缓存,那么一个action的响应就应该只是简单地添加单一的属性到action中。
[HandleError]publicclassHomeController: Controller {
[OutputCache(Duration=10,VaryByParam="none"
publicActionResult Index() {
returnView();
}
}
如果你所缓存的页面全部内容并非是你都需要的,那么请继续往下看第12个技巧。
12.仅缓存页面的部分内容
13.内容分发网络(CDN)
全球各处都有非常多的内容交付网络,它们可以通过离你最近的节点,将内容高速地传递到你的面前。
14.缩小你的库
如果你正在使用像jQuery之类的库,那么你可以考虑是否真的会用到它的所有功能,也许你可以去使用一个更小、更有针对性的库。比如说:Zeptojs就是一个能够支持jQuery的很多功能、而又更小的库。其他像jQuery UI的库,也能为构建个性化的包提供删减过的功能。如果你正在使用Augular的话,那么你在对产品进行编译的时候,就可以像“摇动树干”一样,将那些在你的项目中完全用不到的库去除掉。可见这种方式在保留同等功能的情况下,能有效减少传输中的数据载荷。
15.避免客户端重定向
【原标题】 15 Simple ASP.NET Performance Tuning Tips
作者: Simon Timms
相关阅读
【原创】【小目标,一个“译”】+ ASP.NET性能优化的15个技巧(1)