.NET news » Performance Performance Rss Feed

< 1 2 3 4 5 6 7 8 9 10 11 >
download
Some Useful Concurrency Classes and A Small Testbench
Useful concurrency classes and small test bench in C#
15 Jan 2007, 18:20:00   Source: Some Useful Concurrency Classes and A Small Testbench   Tags: C# Performance
Implementing the CLR Asynchronous Programming Model

Slow and unpredictable are words that typically characterize I/O operations. When an application performs a synchronous I/O operation, the application is basically giving up control to the device that is doing the actual work. For example, if an application calls the StreamRead method to read some bytes from a FileStream or NetworkStream, there is no telling how much time will pass before that method returns. If the file being read is on a local hard drive, then Read may return almost immediately. If the remote server housing the file is offline, then the Read method may wait several minutes before timing out and throwing an exception. During this time, the thread making the synchronous request is tied up. If that thread is the UI thread, the application is frozen and stops responding to user input.

A thread waiting for synchronous I/O to complete is blocked, which means that thread is idle but is not allowed to perform useful work. To improve scalability, many application developers create more threads. Unfortunately, each thread introduces significant overhead such as its kernel object, user-mode and kernel-mode stacks, increased context switching, the calling of DllMain methods with thread attach/detach notifications, and so on. The result is actually reduced scalability.

An application that wishes to remain responsive to the user, improve scalability and throughput, and increase reliability should not perform I/O operations synchronously. Instead, the application should use the common language runtime (CLR) Asynchronous Programming Model (APM) to perform asynchronous I/O operations..

14 Jan 2007, 18:00:00   Source: Implementing the CLR Asynchronous Programming Model   Tags: Performance
Use SQL Parameters to Overcome Ad Hoc Performance Issues
Defining (rather loosely) ad hoc queries as SQL commands built as strings by an SQL client application and submitted to SQL Server.
Pure C# MiniLZO port
Fast stream compression using a ported minilzo for .NET.
22 Dec 2006, 15:05:00   Source: Pure C# MiniLZO port   Tags: Performance
ASP.NET AJAX under the hood secrets
Performance tips and hard-core tricks that change core runtimes, not for the faint hearted.
22 Dec 2006, 09:47:00   Source: ASP.NET AJAX under the hood secrets   Tags: Ajax Performance
Output Caching in ASP.NET 2.0

One of the most sure-fire ways to improve a web application's performance is to employ caching. Caching takes some expensive operation and stores its results in a quickly accessible location. ASP.NET version 1.0 introduced two flavors of caching:

  • Output Caching - caches the entire rendered markup of an ASP.NET web page or User Control for a specified duration.
  • Data Caching - a programmatically-accessible, in-memory data cache for storing objects in the web server's memory.

For a more in-depth discussion on ASP.NET 1.x's caching capabilities, refer to Scott McFarland's Caching with ASP.NET and Steve Smith's ASP.NET Caching: Techniques and Best Practices articles.

In ASP.NET 2.0, the caching system has been extended to include SQL cache dependencies, cache profiles, and post-cache substitution for output cached pages. The Caching for Performance section of the ASP.NET 2.0 QuickStarts provides a good overview of ASP.NET 2.0's caching options. This article explores output caching in ASP.NET 2.0, starting with an overview of output caching and followed by a detailed look at creating pages that include both cached and non-cached markup using fragment caching and post-cache substitution techniques.

12 Dec 2006, 18:00:00   Source: Output Caching in ASP.NET 2.0   Tags: ASP.NET Performance
Optimizing Serialization in .NET
Provides code and techniques to enable developers to optimize serialization of data.
27 Nov 2006, 11:25:00   Source: Optimizing Serialization in .NET   Tags: Performance Remoting
Queue-Linear Flood Fill: A Fast Flood Fill Algorithm
A super-fast flood fill algorithm and implementation, plus helpful optimization tips for image processing.
Fast Pointerless Image Processing in .NET
Process GDI+ images at blazing speeds, with no pointers or unsafe code. Eliminate the need for LockBits(), so you can edit the bits directly and update in real time.
15 Nov 2006, 19:28:00   Source: Fast Pointerless Image Processing in .NET   Tags: Graphics Performance
Inside Diagnostic Tools for .NET
Many diagnostic tools use the CLR Profiling API-even those that aren't strictly profilers. So if you've ever wondered how these tools work, a look at the Profiling API is a good start. In this column, you'll see how they work and look at some useful tips and tricks. You'll also find some essential resources in the "Other Profiling Resources" sidebar. To use the CLR Profiling API, you create a DLL using an unmanaged language-typically C++, then you set some environment variables that instruct the common language runtime (CLR) to load the DLL and allow it to use the Profiling API. When loaded, this DLL effectively becomes an extension of the CLR itself, receiving callbacks, requesting information, and making changes deep within the implementation of the CLR. The Profiling API can provide notification of many activities within the CLR and managed code, including the creation and destruction of appdomains, loading and unloading assemblies, JIT compiling functions, executing functions, throwing and catching exceptions, and doing garbage collections. Using the Profiling API, you can get information about parts of the application, such as names and locations of assemblies, descriptions of types and functions, and locations and layout of objects in memory. Finally, you can use the Profiling API to modify settings, instructions, and the like, including disabling optimizations in the JIT compiler, changing the intermediate language (IL) for a function, or even creating new types and functions..
14 Nov 2006, 19:00:00   Source: Inside Diagnostic Tools for .NET   Tags: Testing Performance
< 1 2 3 4 5 6 7 8 9 10 11 >