在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在广泛的编程语言领域中,C# 作为一种多功能且强大的语言脱颖而出,广泛用于开发各类应用程序,从桌面应用到网页和移动应用。 C# 受到开发者喜爱的主要原因之一是其丰富的库和类,提供了解决各种编程难题的解决方案。 其中,秒表类在准确时间测量、分析和性能分析中占有特殊的地位。
在本文中,我们将看到如何在C#中使用Stopwatch对象来通过公共TimeSpan Elapsed属性来找到执行特定任务所花费的时间。 此外,我们将计时所用的总时间来测量PDF创建的时间面向 C# 开发人员的 IronPDF.
Stopwatch
类是 C# 中 System.Diagnostics
命名空间的一部分,提供了一种简单且高效的方法来高精度测量经过的时间。 它是随着.NET Framework推出的,并且一直是开发人员跟踪代码段执行时间、优化性能和分析应用程序的宝贵工具。
使用Stopwatch
类很简单。 要开始使用它,您首先需要创建一个新的Stopwatch
类实例:
using System.Diagnostics;
class Program
{
static void Main()
{
Stopwatch stopwatch = new Stopwatch(); // Stopwatch object
}
}
using System.Diagnostics;
class Program
{
static void Main()
{
Stopwatch stopwatch = new Stopwatch(); // Stopwatch object
}
}
Imports System.Diagnostics
Friend Class Program
Shared Sub Main()
Dim stopwatch As New Stopwatch() ' Stopwatch object
End Sub
End Class
一旦创建了 "秒表 "实例,就可以启动和停止秒表来测量经过的时间:
stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); // Stop measuring elapsed time
stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); // Stop measuring elapsed time
stopwatch.Start()
Console.WriteLine("It will measure the time between start and stop")
stopwatch.Stop() ' Stop measuring elapsed time
可使用 Elapsed
属性获取经过时间:
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed}");
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed}");
Dim elapsed As TimeSpan = stopwatch.Elapsed
Console.WriteLine($"Elapsed time: {elapsed}")
输出:
Stopwatch
类提供了几个比基本时间测量更高级的功能。 让我们来探索一些这些功能:
Restart
方法是一种方便的方法,可以通过单次操作停止并将已用时间重置为零。 这在测量多个代码段的执行时间而不创建新的 Stopwatch
实例时非常有用。
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("The time will restart after executing the below code");
stopwatch.Restart();
stopwatch.Stop();
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("The time will restart after executing the below code");
stopwatch.Restart();
stopwatch.Stop();
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Console.WriteLine("The time will restart after executing the below code")
stopwatch.Restart()
stopwatch.Stop()
Dim elapsed As TimeSpan = stopwatch.Elapsed
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}")
输出:
IsHighResolution
属性IsHighResolution
属性指示底层的计时机制是否基于高分辨率性能计数器,以准确测量经过的时间。在处理可能不支持高分辨率计时方法的系统时,检查此属性可能会很有用。
Stopwatch stopwatch = new Stopwatch();
if (Stopwatch.IsHighResolution)
{
Console.WriteLine("High-resolution timing is supported");
}
else
{
Console.WriteLine("Fallback to lower-resolution timing");
}
Stopwatch stopwatch = new Stopwatch();
if (Stopwatch.IsHighResolution)
{
Console.WriteLine("High-resolution timing is supported");
}
else
{
Console.WriteLine("Fallback to lower-resolution timing");
}
Dim stopwatch As New Stopwatch()
If System.Diagnostics.Stopwatch.IsHighResolution Then
Console.WriteLine("High-resolution timing is supported")
Else
Console.WriteLine("Fallback to lower-resolution timing")
End If
输出:
Frequency
属性返回基础定时器的频率,以每秒滴答次数计算。 此值用于将经过的计时周期转换为其他时间单位,例如毫秒。
Stopwatch stopwatch = new Stopwatch();
long frequency = Stopwatch.Frequency;
Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
Stopwatch stopwatch = new Stopwatch();
long frequency = Stopwatch.Frequency;
Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
Dim stopwatch As New Stopwatch()
Dim frequency As Long = System.Diagnostics.Stopwatch.Frequency
Console.WriteLine($"Timer Frequency: {frequency} ticks per second")
输出:
ElapsedTicks
属性提供直接访问原始的滴答计数,无需将其转换为时间单位。 这在执行自定义计算或处理低级时间要求时很有用。
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Code segment
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Code segment
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
' Code segment
Dim elapsedTicks As Long = stopwatch.ElapsedTicks
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}")
输出:
IronPDF 是一个强大的 C# 库,让开发人员可以在其 .NET 应用程序中轻松创建、操作和处理 PDF 文档。 无论您需要从HTML、图像或其他格式生成PDF,IronPDF都提供了一整套工具,便于无缝集成到您的C#项目中。
IronPDF 提供了独特的功能,可以转换HTML 转 PDF保持布局和样式不变。 此功能非常适合从网页内容创建PDF,如报告、发票或文档。 您可以将HTML文件、URL和HTML字符串转换为PDF文件。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
在您的C#应用程序中开始使用IronPDF,请按照以下简单步骤操作:
Install-Package IronPdf
或者,您也可以使用IronPDF NuGet 软件包页面下载并安装 "IronPDF" 包。
using IronPdf;
using IronPdf;
Imports IronPdf
现在,您已经准备好在您的应用程序中利用 IronPDF 的功能了。
现在,让我们演示如何使用C#的Stopwatch
类来测量使用IronPDF从URL创建PDF所花费的时间:
using System;
using System.Diagnostics;
using IronPdf;
class Program
{
static void Main()
{
// Initialize IronPDF
IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();
// Specify the URL for PDF generation
string urlToConvert = "https://example.com";
// Use Stopwatch to measure the time taken
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Create PDF from URL
PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);
// Stop measuring elapsed time
stopwatch.Stop();
// Save the generated PDF to a file or perform other actions
PDF.SaveAs("GeneratedPDF.pdf");
// Display the time taken
Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
}
}
using System;
using System.Diagnostics;
using IronPdf;
class Program
{
static void Main()
{
// Initialize IronPDF
IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();
// Specify the URL for PDF generation
string urlToConvert = "https://example.com";
// Use Stopwatch to measure the time taken
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Create PDF from URL
PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);
// Stop measuring elapsed time
stopwatch.Stop();
// Save the generated PDF to a file or perform other actions
PDF.SaveAs("GeneratedPDF.pdf");
// Display the time taken
Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
}
}
Imports System
Imports System.Diagnostics
Imports IronPdf
Friend Class Program
Shared Sub Main()
' Initialize IronPDF
Dim Renderer As New IronPdf.HtmlToPdf()
' Specify the URL for PDF generation
Dim urlToConvert As String = "https://example.com"
' Use Stopwatch to measure the time taken
Dim stopwatch As New Stopwatch()
stopwatch.Start()
' Create PDF from URL
Dim PDF As PdfDocument = Renderer.RenderUrlAsPdf(urlToConvert)
' Stop measuring elapsed time
stopwatch.Stop()
' Save the generated PDF to a file or perform other actions
PDF.SaveAs("GeneratedPDF.pdf")
' Display the time taken
Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds")
End Sub
End Class
本示例初始化 IronPDF,使用 HtmlToPdf
类从指定的 URL 渲染 PDF,并使用 Stopwatch
计时。 调整 urlToConvert
变量为所需的URL,并且您可以根据应用程序的需要进一步自定义PDF创建过程。
输出:
总之,C# 中的 Stopwatch
类作为一个重要工具,用于精确的时间测量和性能分析,为开发人员提供了优化代码和评估操作效率的方法。 直观的界面和高级功能使其在各种计时需求中具有多功能性。 此外,将IronPDF集成到C#项目中扩展了该语言在PDF文档处理方面的能力,为生成、修改和处理PDF提供了无缝解决方案。
示例展示了如何使用Stopwatch
来测量利用IronPDF从URL创建PDF所花费的时间,展现了精确时间跟踪与高级库之间的协同作用,突出显示了在评估应用性能时仔细计时的重要性。 结合 C# 的 Stopwatch
和 IronPDF,为开发人员提供了构建高性能应用程序的强大工具,具备精确的计时和多功能的 PDF 处理能力。
要获取免费试用许可以测试IronPDF功能,请访问IronPDF 许可证信息页面. 关于 URL 到 PDF 转换的完整教程可在IronPDF URL 转 PDF 教程.