Время выполнения веб-запроса – С#

В этой статье вы найдете простой пример того, как создать собственный обработчик сообщений для регистрации времени выполнения веб-запроса.

Иногда для оптимизации производительности может потребоваться узнать время выполнения веб-запроса. Например, вы хотите знать, сколько времени занимает чтение файла в файловой системе или загрузка данных с удаленного сервера.

Обработчик сообщений для регистрации времени загрузки файла

Создание TimeLoggerMessageHandler для регистрации времени выполнения веб-запроса

В следующем фрагменте кода показано, как создать TimeLoggerMessageHandler для регистрации времени, затраченного на чтение файла из файловой системы.

 1using System;
 2using System.Diagnostics;
 3using Aspose.Html;
 4using Aspose.Html.Net;
 5...
 6
 7	// Define the TimeLoggerMessageHandler class that is derived from the MessageHandler class
 8	public class TimeLoggerMessageHandler : MessageHandler
 9	{
10	    // Override the Invoke() method
11		public override void Invoke(INetworkOperationContext context)
12	    {
13	        // Start the stopwatch
14			var stopwatch = Stopwatch.StartNew();
15
16	        // Invoke the next message handler in the chain
17			Next(context);
18
19	        // Stop the stopwatch
20			stopwatch.Stop();
21
22	        // Print the result
23			Console.WriteLine("Request: " + context.Request.RequestUri);
24	        Console.WriteLine("Time: " + stopwatch.ElapsedMilliseconds + "ms");
25	    }
26	}

Используйте класс Stopwatch в пространстве имен System.Diagnostics, чтобы точно измерить время, необходимое для выполнения веб-запроса. Метод StartNew() начинает регистрировать время выполнения веб-запроса до тех пор, пока не будет вызван метод Stop().

Добавление TimeLoggerMessageHandler в конвейер обработчиков сообщений

Конструктор Configuration() инициализирует экземпляр класса Configuration. После создания конфигурации вызываются методы GetService () и MessageHandlers.Insert(). Метод Insert() добавляет TimeLoggerMessageHandler на первое место в коллекции обработчиков сообщений.

Используйте конструктор HTMLDocument(address, configuration) для инициализации HTML-документа и реализации примера для регистрации времени загрузки документа.

 1using Aspose.Html;
 2using Aspose.Html.Net;
 3using Aspose.Html.Services;
 4...
 5
 6	// Create an instance of the Configuration class
 7	using var configuration = new Configuration();
 8
 9	// Add the TimeLoggerMessageHandler to the chain of existing message handlers
10	var service = configuration.GetService<INetworkService>();
11	var handlers = service.MessageHandlers;
12
13	handlers.Insert(0, new TimeLoggerMessageHandler());
14	
15	// Prepare path to a source document file
16	string documentPath = Path.Combine(DataDir, "input.htm");
17
18	// Initialize an HTML document with specified configuration
19	using var document = new HTMLDocument(documentPath, configuration);

Вы можете скачать полные примеры и файлы данных с GitHub.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.