Ef 6 و Ngen : شروعی سریعتر برای برنامه های مبتنی بر Entity Framework
نویسنده: احمد نواصری
تاریخ: ۱۳۹۴/۰۶/۲۴ ۱۳:۱۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System;
using System.Data.Entity;
namespace UsingNgen
{
public class NgenDbContex : DbContext
{ }
class Program
{
static void Main()
{
var nGenCtx = new NgenDbContex();
Console.WriteLine("Press a key to exit...");
Console.ReadKey();
}
}
}
بعد از ذخیره فایل، در پنجره بالا دکمهای به نام Open in WPA ظاهر میشود. WPA مخفف Windows Performance Analyzer میباشد. آن را کلیک کنید تا محیط آنالایزر باز شود.
حال در سمت چپ این پنجره انواع آنالایزرها را مشاهده میکنید. روی آنالایزر Computation کلیک کنید و از زیرمجموعهی آن، CPU Usage را انتخاب کنید. آمار مربوط به برنامه خودمان را در تصویر بالا مشاهده میکنید. کل برنامه 164 میلی ثانیه زمان برده و فایل Clr.dll حدود 47 میلی ثانیه و یک فایل clrjit.dll نیز برای تولید کد JIT وجود دارد. حال برای تسریع در عمل شروع، از تکنیک Ngen به صورت زیر استفاده میکنیم.
3- دوباره به نوار جستجوی ویندوز رفته و ابزار Developer Command Prompt for VsXXXX را با امتیاز دسترسی از نوع Admin اجرا کنید. XXXX نسخهی ویژوال استودیو میباشد.
حال به محل ذخیره فایل اجرایی برنامه رفته و دستور Ngen Install EntityFramework.dll را تایپ کنید تا یک ایمیج کد Native از entityframework.dll ساخته شود. دوباره ابزار Windows Performance Recorder را لود کرده و روی دکمه Start کلیک کنید و فایل اجرایی برنامه را اجرا نمایید. پس از اتمام عملیات ثبت جزئیات، آن را در Windows Performance Analyzer باز نمایید.
همانطور که مشاهده میکنید کل برنامه ما 89 میلی ثانیه زمان برده و Clr.dll 29 ثانیه و به جای clrjit.dll فایل EntityFramework به صورت native تولید شده است.