- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Sử dụng thư viện BenchmarkDotNet đo hiệu năng của hảm Method
Xin chào các bạn, bài viết hôm nay mình sẻ hướng dẫn các bạn sử dụng thư viện BenchmarkDotNet để đo hiệu năng của từng hàm method trên lập trình C#.
[C#] How to use BenchmarkDotNet Library
BenchmarkDotNet là một thư viện mã nguồn mở được sử dụng để đo lường và so sánh hiệu suất của mã trong ngôn ngữ lập trình C#.
Được thiết kế để đơn giản hóa quá trình benchmarking, BenchmarkDotNet cung cấp cho bạn các công cụ và tính năng mạnh mẽ để tiến hành các bài đo lường hiệu suất chính xác và nhất quán.
Một trong những lợi ích lớn nhất của BenchmarkDotNet là khả năng tự động hoá quá trình benchmarking.
Thay vì phải viết mã thủ công để đo lường thời gian thực thi của các phương thức, bạn chỉ cần chú thích các phương thức của mình với các thuộc tính BenchmarkDotNet và thư viện sẽ tự động thực hiện quá trình benchmarking cho bạn.
Điều này giúp bạn tiết kiệm thời gian và công sức trong việc xây dựng các bài đo lường hiệu suất phức tạp.
BenchmarkDotNet cung cấp một loạt các thuộc tính và tùy chọn để tùy chỉnh quá trình benchmarking.
Bạn có thể định cấu hình số lần lặp, mức độ chính xác của đo lường, kiểm soát quá trình khởi động trước và sau mỗi benchmark, và nhiều hơn nữa. Nó cũng hỗ trợ việc đo lường bộ nhớ và các thống kê khác để bạn có cái nhìn toàn diện về hiệu suất của mã của mình.
Các kết quả benchmark được trình bày một cách rõ ràng và dễ đọc.
BenchmarkDotNet cung cấp biểu đồ, bảng và các thông số thống kê để bạn có thể dễ dàng so sánh và phân tích kết quả.
Bạn có thể tìm hiểu về sự khác biệt hiệu suất giữa các phiên bản của mã, giữa các thuật toán khác nhau hoặc giữa các phiên bản của .NET Framework.
Ngoài ra, BenchmarkDotNet cũng hỗ trợ việc so sánh hiệu suất trên các nền tảng khác nhau như .NET Framework và .NET Core.
Bạn có thể đo lường và so sánh hiệu suất trên các phiên bản khác nhau của .NET hoặc giữa các nền tảng khác nhau để tìm ra các điểm yếu và tối ưu hóa mã của mình cho từng môi trường.
Video demo test Benchmark:
Để sử dụng đầu tiên các bạn cần cài đặt thư viện BenchmarkDotNet từ nuget.
PM> NuGet\Install-Package BenchmarkDotNet -Version 0.13.5
Ví dụ, ở bên dưới đây chúng ta có 3 function dùng để tính tổng từ 0 đến 100000.
public void MethodSumUsingFor() {
var k = 0;
for (int i = 0; i <100000; i++)
{
k += i;
}
}
public void MethodSumUsingForParallel()
{
var k = 0;
Parallel.For(0, 100000, (i) =>
{
Interlocked.Add(ref k, i);
});
}
public void MethodSumUsingLinq()
{
int sum = Enumerable.Range(0, 100000).Sum();
}
Ở 3 hàm tính tổng trên chúng ta sử dụng: For, Parallel.For và Linq để xem test hiệu năng của 3 em trai này.
Khi chạy chúng ta sẽ được kết quả như hình ở trên.
Thanks for watching!