- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
- [C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
- [C#] Thiết kế ứng dụng Single Instance và đưa ứng dụng lên trước nếu kiểm tra ứng dụng đang chạy
- [C#] Giới thiệu JSON Web Token và cách đọc chuỗi token
- [C#] Cách tăng giảm font chữ tất cả các control trên winform
- [DEVEXPRESS] Tích hợp chức năng Tìm kiếm Search vào CheckedComboboxEdit
- [C#] Gởi email Metting Calendar Reminder kèm nhắc thời gian lịch họp
- [C#] Tìm kiếm xem danh sách từ khóa có tồn tại trong đoạn văn bản hay không
- [C#] Thiết kế giao diện ứng dụng trên Console sử dụng thư viện Terminal.Gui
- [C#] Hướng dẫn tạo mã VietQR Payment API Winform
- [C#] Sử dụng thư viện BenchmarkDotNet đo hiệu năng của hảm Method
- [DEVEXPRESS] Tìm kiếm không dấu tô màu highlight có dấu trên C# 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!