Return to PrescriptiveGuidanceChecker



Index


ASP.NET 1.1 Performance Checks

* Avoid asynchronous calls unless you have additional parallel work.
* Avoid blocking on long-running tasks.
* Avoid blocking threads.
* Avoid caching sensitive data.
* Avoid creating deep hierarchies of controls.
* Avoid long-running and blocking calls in pipeline code.
* Avoid per-request impersonation.
* Avoid per-request impersonation.
* Avoid storing COM objects in session state or application state.
* Avoid storing STA COM objects in session state.
* Avoid storing STA components in session state.
* Avoid unnecessary exceptions.
* Avoid unnecessary process hops.
* Avoid using Page.DataBind.
* Avoid XCOPY under heavy load.
* Cache the appropriate form of data.
* Cache the right data.
* Choose the right cache location.
* Configure the memory limit.
* Configure the memory limit.
* Consider asynchronous events.
* Consider caching data.
* Consider minIoThreads and minWorkerThreads for burst load.
* Consider precompiling pages.
* Consider security and performance.
* Consider serialization costs.
* Consider using HTTP compression.
* Consider using perimeter caching.
* Consider using Server.Transfer instead of Response.Redirect.
* Consider using SSL hardware to offload SSL processing.
* Consider Web garden configuration.
* Constrain unwanted Web server traffic.
* Determine the size of your view state.
* Disable session state if you do not use it.
* Disable tracing and debugging.
* Disable view state if you do not need it.
* Do not cache or block on pooled resources.
* Do not create STA components in a page constructor.
* Do not create threads on a per-request basis.
* Do not store single-threaded apartment (STA) COM objects in application state.
* Enable buffering.
* Ensure content updates do not cause additional assemblies to be loaded.
* Ensure debug is set to false.
* Ensure pages are batch compiled.
* Evaluate affinity.
* Explicitly call Close or Dispose on resources you open.
* Identify the use of view state in your server controls.
* Implement a Global.asax error handler.
* Know your application allocation pattern.
* Minimize calls to DataBinder.Eval.
* Minimize the number of objects you store in view state.
* Monitor application exceptions.
* Obtain resources late and release them early.
* Only use Secure Sockets Layer (SSL) for pages that require it.
* Optimize expensive loops.
* Partition page content to improve caching efficiency and reduce rendering.
* Partition your application logically.
* Pool resources.
* Prefer basic types to reduce serialization costs.
* Prevent users from requesting too much data.
* Reduce round trips.
* Refresh your cache appropriately.
* Segregate secure and non-secure content.
* Separate dynamic data from static data in your pages.
* Set timeouts aggressively.
* Short-circuit the HTTP pipeline.
* Store simple state on the client where possible.
* Supplement classic ASP Server.CreateObject with early binding.
* Trim your page size.
* Tune SSL timeout to avoid SSL session expiration.
* Tune the thread pool by using the formula to reduce contention.
* Turn off authentication for anonymous access.
* Understand the performance implications of a remote middle tier.
* Use a DataReader for fast and efficient data binding.
* Use absolute URLs for navigation.
* Use application state to share static, read-only data.
* Use ASPCOMPAT to call STA COM objects.
* Use caching.
* Use client-side validation.
* Use HtmlTextWriter when building custom controls.
* Use kernel caching on Microsoft® Windows Server™ 2003.
* Use output caching to cache relatively static pages.
* Use Page.IsPostBack to minimize redundant processing.
* Use paging for large result sets.
* Use server controls where appropriate.
* Use static properties instead of the Application object to store application state.
* Use StringBuilder for temporary buffers.
* Use the ReadOnly attribute when you can.
* Use try/finally on disposable resources.
* Use VaryBy attributes for selective caching.
* Validate user input on the client.
* Write code that avoids exceptions.
* Use Response.Write for formatting output.





Return to PrescriptiveGuidanceChecker