Profile and debug your ASP.NET MVC app with Glimpse

來源:互聯網
上載者:User

標籤:

原文: http://www.asp.net/mvc/overview/performance/profile-and-debug-your-aspnet-mvc-app-with-glimpse

 

Glimpse為ASP.NET程式提供了詳細的效能、調試、診斷功能. 它在每一個頁面的下面展示了關鍵的效能指標. 當你需要瞭解伺服器的健全狀態能讓你深入到你的應用. Glimpse提供了非常多的有價值的資訊我建議你在開發環境中都使用它.  Fiddler 和 F-12 開發人員工具 提供了一個用戶端的視圖, Glimpse提供一個資料來自服務端的詳細視圖. 下面的教程的重點集中在使用在ASP.NET MVC和EF中使用Glimpse, 當然Glimpse還有For XXX的很多包.  官方文檔點這Glimpse docs. Glimpse是一個開源系統.

 

安裝Glimpse

安裝Glimpse Mvc5 和 Glimpse EF6包:

Search for Glimpse.EF

 

或者

PM> Install-Package Glimpse.MVC5 
PM> Install-Package Glimpse.EF6

為localhost開啟Glimpse功能

開啟http://localhost:<port #>/glimpse.axd頁面選擇右上方的Turn Glimpse On按鈕

 

現在開啟localhost, Heads Up Display (HUD) 顯示在頁面的底部.

 

Glimpse HUD page 詳細展示了一些耗時資訊. 這些效能資料能立即告訴你問題在哪 - 在你開始測試前. 點擊右下角的G出現下面一個資訊面板:

在上面的圖中, the Execution標籤 被選中, 顯示了管道中Action和Filter的時序資訊. 

Timeline 標籤
public ActionResult Index(int? id, int? courseID, int ? eager){    var viewModel = new InstructorIndexData();    viewModel.Instructors = db.Instructors        .Include(i => i.OfficeAssignment)        .Include(i => i.Courses.Select(c => c.Department))        .OrderBy(i => i.LastName);    if (id != null)    {        ViewBag.InstructorID = id.Value;        viewModel.Courses = viewModel.Instructors.Where(            i => i.ID == id.Value).Single().Courses;    }    if (courseID != null)    {       ViewBag.CourseID = courseID.Value;       // Eager loading       if (eager != null && eager > 0)       {          ViewBag.eagerMsg = "Eager Loading";          viewModel.Enrollments = viewModel.Courses.Where(              x => x.CourseID == courseID).Single().Enrollments;       }       else {         // Explicit loading          ViewBag.eagerMsg = "Explicit Loading";        var selectedCourse = viewModel.Courses.Where(x => x.CourseID == courseID).Single();        db.Entry(selectedCourse).Collection(x => x.Enrollments).Load();        foreach (Enrollment enrollment in selectedCourse.Enrollments)        {            db.Entry(enrollment).Reference(x => x.Student).Load();        }        viewModel.Enrollments = selectedCourse.Enrollments;       }    }    return View(viewModel);}

上面的代碼允許我們傳遞一個參數(eager)去顯示資料. 在下面的圖中, 顯示了Index Action的執行情況:

在代碼中我們把eager是設為1:

 

你可以把滑鼠放在相應的事件色塊中查看詳細的資訊:

 

模型繫結Model Binding

model binding選項卡 提供給我們一些資訊協助我們瞭解我們的表單參數是怎麼綁定到模型上的或者為什麼有些沒有按照我們的預想綁定. 看到下面圖片右邊中間部分的 ? 表徵圖沒,  點擊它可以到Glimpse的協助頁面.

路由

Routes選項卡協助我們debug和瞭解路由情況. 在下面的圖中, 產品路由被選中 (綠色的就是選中的).

路由constraints, Areas和data tokens都能顯示出來. 更多資訊見Glimpse Routes和Attribute Routing in ASP.NET MVC 5.

 

Profile and debug your ASP.NET MVC app with Glimpse

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.