Code written in a scripting language is similar to code written in a traditional programming language. So, it may have performance issues too. This topic describes how you can profile script code with AQTime.
Supported Scripting Languages and Engines
You can use AQTime to profile script code executed by applications that host the Microsoft Scripting Engine. For example, this engine is used by Internet Explorer and Windows Script Host (this utility allows you to run scripts directly from Microsoft Windows). The engine supports the VBScript and JScript scripting languages. Thus, AQTime can profile web scripts and Windows Script Host tasks that are written in VBScript and JScript.
AQTime supports profiling JScript and VBScript code running in the Internet Explorer browser. AQTime cannot profile web scripts from pages displayed in the Firefox and Opera browsers because neither of these browsers uses the Microsoft Scripting Engine.
AQTime cannot profile server-side scripts of ASP pages. It can profile only client scripts of ASP pages that are run by the browser.
AQTime supports profiling scripts that are run by 64-bit versions of Internet Explorer, but it cannot profile scripts executed in other 64-bit processes. This happens because there are no script debugging libraries that can be used in these processes.
AQTime does not support profiling VBScript code running in Internet Explorer 8 and later. It supports profiling only JScript code. For more information, see Profiling Scripts in Internet Explorer 8 and Later.
AQTime does not support line-level profiling of scripts running in Internet Explorer 8 and later. So, if at least one line of a script routine was executed, AQTime considers the routine executed. See also Profiling Scripts in Internet Explorer 8 and Later.
Windows Script Host Scripts
AQTime can profile JScript and VBScript files (*.vbs, *.js) executed with any Windows Script Host executable: wscript.exe or cscript.exe.
Note on VBScript class profiling: AQTime does not support profiling classes in VBScript code. It does not retrieve information on class internals and does not report profiling results for class methods. As a workaround, you can temporarily move the functionality of your classes’ methods to global functions in your VBScript code.
Script code is executed by an application that hosts the script engine. In order for AQTime to be able to collect scripting data, you need to configure your computer and host application before profiling. For complete information on the actions to be performed, see Profiling Scripts - Prerequisites.
Currently, scripts can be profiled with the following profilers:
To profile a script, you should launch the host application under AQTime and then execute the script in that application. AQTime recognizes the script’s activity and reports its results along with the application results. There are three ways to profile a script, they vary in the module that is added to the project: a host application, a script file or a URL --
|If you profile scripts running in Internet Explorer 8 and later, then before you start profiling, close all the Internet Explorer windows. Do not open windows or pages (except for the profiled window and page) until the profiling is over. Note that only JScript code profiling is supported.
See Profiling Scripts in Internet Explorer 8 and Later to learn about the other peculiarities of profiling under this browser.
Analyzing Script Profiling Results
The results of script profiling are reported along with the host application’s profiling results. There is no significant difference between results produced upon profiling ordinary applications and libraries and results of script profiling.
To distinguish the results of script profiling from the results of host application profiling, you can use the Code Type column of the Report panel. The values of this column indicate the type of the routine’s code. For script results this column holds the Script value. You can group or filter the results by this value. By default, the Code Type column is hidden, but you can display it via the Field Chooser. See Adding and Removing Columns.
Note that sometimes results of script profiling performed by the Coverage or Light Coverage profiler may contain duplicated items in the Report panel for some script routines. This happens due to some specifics of the script engine's and the profilers' (Coverage and Light Coverage) functioning. To learn how to solve this problem, see Profiling Scripts - Troubleshooting.
For information on how to resolve problems that may occur during script profiling, see Profiling Scripts - Troubleshooting.