Profiling Web Server Applications

Applies to AQTime 8.81, last modified on January 18, 2022

Web server applications are normally dynamic link libraries that are loaded and called by an HTTP server. They are used to enhance the server capabilities. For instance, a Web server application can process user requests and dynamically generate Web pages with the appropriate content. Web server applications can be created with different compilers and can be meant for HTTP servers of different types (for Internet Information Services, Apache, etc.) For instance, using Microsoft Visual Studio, you can create an IIS application that uses the functionality provided by the .NET Framework and .NET assemblies.

The manner in which you profile your Web application with AQTime depends on the server type. For profiling Web applications that work with Internet Information Services, AQTime offers special profiling modes: IIS and ASP.NET. For detailed information on profiling these applications, see the following links:

Profiling IIS Applications

Profiling ASP.NET Applications

A general recipe for profiling Web applications is rather simple: since a Web application is a DLL, you can profile it in the same manner as you profile any other DLL. To do this, you can either run the HTTP server process under AQTime or attach to that process at run time. The way you choose depends on the situation.

If you fully control the HTTP server, you can try to run it under AQTime:

  • Compile your Web application with debug information.

  • Load your application in AQTime.

  • Select the  Normal profiling mode.

  • Open the Run Parameters dialog and specify the fully qualified name of the HTTP server executable in the Specify custom host application edit box. Note that depending on their options, HTTP servers can use different process names and different executables.

  • Press Run to start profiling. Select AQTime > Run (or select Debug > Run while one of AQTime panels is active) to start profiling.Select AQTime > Run With Profiling to start profiling.

  • In your Internet browser, open the Web page that loads your Web server application. Then profile your application as you usually would.

Since the process that uses your DLL may never end by itself, you may need to use the Run > Get Results menu itemAQTime > Get Results menu itemAQTime > Get Results menu item in order to obtain profiling results. Another way to obtain the results is to create an action that will “tell” AQTime to generate the results. See Getting Results During Profiling for more information.

If for some reason the HTTP server process cannot be launched under AQTime, you can try attaching your Web server DLL to it:

  • Compile your Web application with debug information.

  • Load your application in AQTime.

  • Select the Normal profiling mode.

  • Select Run > Attach to Process from the main menu or press Attach to Process button on the Standard toolbar.Select AQTime > Attach from Visual Studio’s main menu.Click the Attach to Process button in RAD Studio. This will call the Select Process to Attach dialog listing all the processes that are running at the moment. Note that the Attach to Process button does not reside on any toolbar by default. However, you can add the button to any RAD Studio’s toolbar via the Toolbar Customization dialog. In this dialog, switch to the Commands page, select the Run.AQtime category in the Categories list, drag the Attach to Process command from the Commands list and drop it on the needed toolbar.

  • In the dialog, select the process of the HTTP server (to be more exact, you should select the process that will load your DLL in memory) and press OK to attach to this process.

  • In your Internet browser, open the Web page that loads your Web server application. Then profile your application as you usually would.

  • To obtain profiling results, use the Run > Get Results menu itemthe AQTime > Get Results menu itemthe AQTime > Get Results menu item. Another way to obtain the results is to create an action that will "tell" AQTime to generate the results. See Getting Results During Profiling for more information.

See Also

Profiling Dynamic Link Libraries
Profiling IIS Applications
Profiling ASP.NET Applications
Attaching to Process
Profiling Scripts

Highlight search results