教你50招提升ASP.NET性能(四):精选的技巧
(4)A selection of tips
招数4:
精选的技巧
Make sure HTTP compression is turned on for any uncompressed content. HTML in particular compresses significantly, and in this era of mobile friendliness and slow 3G connections, that’s essential.
确保为未压缩的内容打开HTTP压缩。在这个面向移动友好和3G连接缓慢的时代,HTML压缩尤其明显,这是至关重要的。
(5)Always set the CacheControlMaxAge attribute in web.config to a high number (a year is good). You don’t want people pulling down the same static content they did last week. It’ll also save on the bandwidth you’re paying for.
招数5:
总是在web.config中CacheControlMaxAge属性设置为一个很高的数值(一年比较好)。你不想人们总是取回上周就取回的相同的静态内容。这会为你节约宽带费用的开销。
(6)Make use of the OutputCache annotation on MVC controllers. If the server can serve from memory, rather than going to disk or database, that’s a good win.
招数6:
在MVC 控制器上使用OutputCache标识。如果服务能从内存中获取能比从磁盘和数据库获得更好的性能。
(7)Always profile your ORM database hits with SQL Profiler during development. ORMs get away from you very quickly. Before you know it, you’ve run a query 2000 times in a loop, when you could have retrieved all your data with a single database hit.
招数7:
总是在开发中使用SQL Profiler分析你的ORM数据库访问。ORMs让你远离了SQL查询。在你了解它以前,你已经在一个循环中运行2000次查询,其实你可以在一次数据库访问中获取所有的数据。
(8)Watch out for lazy loading in ORMs. You shouldn’t lazy load any entities that could be retrieved with a single database hit.
招数8:
注意ORMs中的延迟加载。你不应该延迟加载任何实体而是一次数据库访问取回它们。
(9)Implement different database queries in different contexts. In the API and on a webpage, you’ll inevitably require different entity properties, so don’t load things you don’t need just because it’s convenient to reuse a query.
招数9:
在不同的上下文实现不同的数据库访问。你不可避免的需要不同的实体属性,不需要加载你不需要的东西仅仅为了方便重用查询。
(10)Get MiniProfiler and configure it to always run when you hit your site (just don’t enable it for the general public). You’ll get detailed execution times and a big red warning if the same database query is running multiple times.
招数10:
当你访问你的站点时候(在公之于众之前启用它),获取MiniProfiler并且设置为总是运行。你会得到详细的运行时间和一个显眼红色警告(如果同一个数据库查询运行了多次)。