From c8e0a0ddece8041b3591c5e1125a0bdd333a3dfa Mon Sep 17 00:00:00 2001 From: Aparna Singh Date: Sat, 25 Oct 2025 21:28:41 +0530 Subject: [PATCH] Add Execution Time Tracker Script Include snippet --- .../Execution Time Tracker/README.md | 20 +++++++++++++++++++ .../execution_time_tracker.js | 15 ++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 Server-Side Components/Script Includes/Execution Time Tracker/README.md create mode 100644 Server-Side Components/Script Includes/Execution Time Tracker/execution_time_tracker.js diff --git a/Server-Side Components/Script Includes/Execution Time Tracker/README.md b/Server-Side Components/Script Includes/Execution Time Tracker/README.md new file mode 100644 index 0000000000..d7a2973628 --- /dev/null +++ b/Server-Side Components/Script Includes/Execution Time Tracker/README.md @@ -0,0 +1,20 @@ + +# Script Execution Time Tracker + +This snippet helps developers measure how long their server-side scripts take to run in ServiceNow. +Useful for performance optimization and debugging slow background scripts or Script Includes. + +## Example Use Case +- Measure performance of a GlideRecord query or function execution. +- Log the execution time to the system logs. + +## How It Works +The script uses timestamps before and after execution to measure elapsed time. + +## Usage +Wrap your logic between `start` and `stop`, or use the Script Include: + +```javascript +var timer = new ExecutionTimeTracker(); +// ... your code ... +timer.stop('My Script'); diff --git a/Server-Side Components/Script Includes/Execution Time Tracker/execution_time_tracker.js b/Server-Side Components/Script Includes/Execution Time Tracker/execution_time_tracker.js new file mode 100644 index 0000000000..e8d4e1799a --- /dev/null +++ b/Server-Side Components/Script Includes/Execution Time Tracker/execution_time_tracker.js @@ -0,0 +1,15 @@ +var ExecutionTimeTracker = Class.create(); +ExecutionTimeTracker.prototype = { + initialize: function() { + this.startTime = new Date().getTime(); + }, + + stop: function(label) { + var endTime = new Date().getTime(); + var duration = endTime - this.startTime; + gs.info((label || 'Execution') + ' completed in ' + duration + ' ms'); + return duration; + }, + + type: 'ExecutionTimeTracker' +};