۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه اندازه گیری عملکرد API در ASP.NET Core

از MethodTimer.Fody استفاده کنید تا سرعت اجرای API های خود را اندازه گیری کنید و برنامه های ASP.NET Core خود را به خوبی اجرا کنید.

از MethodTimer.Fody استفاده کنید تا سرعت اجرای API های خود را اندازه گیری کنید و برنامه های ASP.NET Core خود را به خوبی اجرا کنید.

در چشم‌انداز دیجیتالی پرشتاب امروزی، بیایید خودمان را درباره سرعت حرکتمان شوخی نکنیم. بسیاری از ما، و نرم افزاری که می سازیم، هنوز خیلی کند هستیم. چگونه متوجه شویم که در حال پیشرفت هستیم؟

برای اینکه مطمئن شویم اوضاع در حال بهبود است، ابتدا باید آنها را اندازه گیری کنیم. اگر فکر می کنید عملکرد API های شما برای خوشحالی کاربران و موفقیت برنامه شما حیاتی است (و همینطور است)، باید به طور منظم این عملکرد را کنترل کنید و اطمینان حاصل کنید که هر گونه مشکلی در اوایل چرخه توسعه نرم افزار گزارش می شود.

یک ابزار عالی برای اندازه‌گیری عملکرد API در NET، MethodTimer.Fody است. در این مقاله بررسی خواهیم کرد که چگونه می‌توانیم از MethodTimer.Fody برای اندازه‌گیری عملکرد APIها در برنامه‌های ASP.NET Core استفاده کنیم.

برای استفاده از نمونه کدهای ارائه شده در این مقاله، باید Visual Studio 2022 را در سیستم خود نصب کنید. اگر قبلاً نسخه‌ای ندارید، می‌توانید Visual Studio 2022 را از اینجا بارگیری کنید.

یک پروژه ASP.NET Core Web API در Visual Studio ایجاد کنید

ابتدا، اجازه دهید یک پروژه ASP.NET Core 7 Web API در Visual Studio 2022 ایجاد کنیم. مراحل ذکر شده در زیر را دنبال کنید.

  1. Visual Studio 2022 IDE را راه اندازی کنید.
  2. روی “ایجاد پروژه جدید” کلیک کنید.
  3. در پنجره “ایجاد پروژه جدید”، “ASP.NET Core Web API” را از لیست الگوهای نمایش داده شده انتخاب کنید.
  4. بعدی را کلیک کنید.
  5. در پنجره “پیکربندی پروژه جدید خود”، نام و مکان پروژه جدید را مشخص کنید.
  6. به صورت اختیاری، بسته به تنظیمات برگزیده خود، کادر انتخاب «قرار دادن راه حل و پروژه در یک فهرست راهنمای» را علامت بزنید.
  7. بعدی را کلیک کنید.
  8. در پنجره «اطلاعات اضافی» که در ادامه نشان داده شده است، کادر «استفاده از کنترل‌کننده‌ها (برای استفاده از حداقل API‌ها علامت آن را بردارید» علامت بزنید. ما از حداقل API در این پروژه استفاده نخواهیم کرد.
  9. در جای دیگری از پنجره «اطلاعات اضافی»، «نوع احراز هویت» را روی «هیچ‌کدام» (پیش‌فرض) بگذارید و مطمئن شوید که کادرهای «فعال کردن پشتیبانی باز API»، «پیکربندی برای HTTPS» و «فعال کردن» را انتخاب کنید. Docker» بدون علامت باقی می ماند. ما در اینجا از هیچ یک از این ویژگی ها استفاده نخواهیم کرد.
  10. روی ایجاد کلیک کنید.
NET MAUI Community Toolkit پشتیبانی از TouchBehavior را اضافه می کند

ما از این پروژه ASP.NET Core Web API برای اندازه‌گیری عملکرد API با MethodTimer.Fody در بخش‌های زیر استفاده خواهیم کرد.

عملکرد API چیست و چرا مهم است؟

عملکرد API اصطلاحی است که به سرعت یک API می‌تواند درخواست‌ها را پردازش کند و پاسخ‌ها را برگرداند. این معیار شامل عواملی مانند سرعت پردازش، کارایی محاسباتی، بازیابی داده ها و تحویل نتایج به کاربران است. با تجزیه و تحلیل این عوامل و رمزگشایی پیچیدگی‌های عملکرد API، می‌توانید هنگام ادغام APIها در برنامه‌های تجاری خود تصمیمات آگاهانه بگیرید.

دو دلیل کلیدی برای حفظ عملکرد API خوب، تجربه کاربر و مقیاس پذیری است. پاسخ های سریع و کارآمد API برای ارائه یک تجربه کاربری روان ضروری است. با افزایش تعداد درخواست های کاربر به برنامه شما، عملکرد API حیاتی می شود. اگر API خود را برای مدیریت کارآمد بار طراحی نکرده باشید، در معرض خطر کاهش عملکرد، افزایش زمان پاسخگویی و حتی خرابی سیستم هستید.

واضح است که عملکرد API می تواند مستقیماً بر رقابت پذیری کسب و کار شما تأثیر بگذارد.

بسته MethodTimer.Fody NuGet را نصب کنید

برای اندازه‌گیری عملکرد API با MethodTimer.Fody. ابتدا بسته MethodTimer.Fody NuGet را به پروژه Web API که ایجاد کردید اضافه کنید. برای انجام این کار، پروژه را در پنجره Solution Explorer انتخاب کنید و کلیک راست کرده و “Manage NuGet Packages” را انتخاب کنید. در پنجره NuGet Package Manager، بسته MethodTimer.Fody را جستجو کرده و آن را نصب کنید.

هدف GitHub امنیت زنجیره تامین نرم افزار است

از طرف دیگر، می‌توانید بسته را از طریق کنسول NuGet Package Manager با وارد کردن خط نشان داده شده در زیر نصب کنید.

PM> Install-Package MethodTimer.Fody

علاوه بر نصب بسته MethodTimer.Fody، باید یک فایل پیکربندی به نام FodyWeavers.xml را به پروژه خود اضافه کنید. یک فایل جدید به نام FodyWeavers.xml در دایرکتوری اصلی پروژه ایجاد کنید و کد زیر را در فایل وارد کنید.

<?xml version="1.0" encoding="utf-8"?>
<Weavers>
  <MethodTimer />
</Weavers>

متدهای API را در ASP.NET Core ایجاد کنید

در مرحله بعد، چند روش API ایجاد می کنیم تا عملکرد آنها را نمایه کنیم. یک کلاس موجودیت جدید به نام Author ایجاد کنید و کد تولید شده را با کد زیر جایگزین کنید.

public class Author
{
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
}

اکنون یک کنترلر API جدید به نام AuthorController در فایلی با همین نام، با پسوند cs ایجاد کنید. کد تولید شده را با کد زیر جایگزین کنید.

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace IDG.MethodTimer.Fody.Demo.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class AuthorController : ControllerBase
    {
        private readonly List<Author> authors = new List<Author>();
        public AuthorController()
        {
            authors.Add(new Author()
            {
                Id = 1,
                FirstName = "Joydip",
                LastName = "Kanjilal"
            });
            authors.Add(new Author()
            {
                Id = 2,
                FirstName = "Paul",
                LastName = "Smith"
            });
        }
        [HttpGet]
        public IEnumerable<Author> Get()
        {
            return authors;
        }
        [HttpGet("{id}", Name = "Get")]
        public Author Get(int id)
        {
            return authors.Find(x => x.Id == id);
        }
    }
}

ویژگی [Time] را به روش های API خود اعمال کنید

برای اندازه‌گیری زمان اجرای متدهای API با MethodTimer.Fody، باید ویژگی [Time] را برای آن متدها اعمال کنیم. بنابراین همانطور که در قطعه کد زیر نشان داده شده است، ویژگی [Time] را به روش‌های عمل خود اعمال کنید.

[Time]
[HttpGet]
public IEnumerable<Author> Get()
{
    return authors;
}

[Time]
[HttpGet("{id}", Name = "Get")]
public Author Get(int id)
{
    return authors.Find(x => x.Id == id);
}

عملکرد روش‌های API خود را اندازه‌گیری کنید

هنگامی که برنامه را اجرا می‌کنید و هر یک از دو نقطه پایانی را مرور می‌کنید که ویژگی [Time] روی آنها اعمال شده است، می‌توانید زمان اجرای روش‌های API را همانطور که در شکل ۱ زیر نشان داده شده است ببینید.

بهترین ویژگی های جدید در ASP.NET Core 6

methodtimer 01

شکل ۱: MethodTimer.Fody در محل کار!

توجه داشته باشید که زمان اجرا صفر میلی ثانیه را نشان می دهد. این به این دلیل است که اجرای ما از کنترلر حداقلی است و فقط چند رکورد از روش عمل بازگردانده می شود. اگر می‌خواهید تفاوتی را مشاهده کنید، می‌توانید روش عمل خود را با استفاده از روش Thread.Sleep همانطور که در قطعه کد زیر نشان داده شده است، کاهش دهید.

[Time]
[HttpGet]
public IEnumerable<Author> Get()
{
    Thread.Sleep(1000);
    return authors;
}

وقتی برنامه را دوباره اجرا می‌کنید و همان نقطه پایانی را مرور می‌کنید، خروجی باید مشابه شکل ۲ باشد.

methodtimer 02

شکل ۲: روش عمل HttpGet زمان اجرا را نشان می دهد.

در حالی که چندین ابزار برای نمایه کردن عملکرد برنامه‌ها وجود دارد، باید بر اساس نیاز خود یکی را انتخاب کنید. توسعه دهندگان API باید روی بهینه سازی پرس و جوهای پایگاه داده، پیاده سازی کش، بهینه سازی کد و به حداقل رساندن انتقال داده های غیر ضروری تمرکز کنند. به طور طبیعی، شما همچنین باید عملکرد را به طور منظم کنترل کنید.