簡體   English   中英

T4MVC 和性能問題

[英]T4MVC and performance issues

我已經使用 T4MVC 有一段時間了。 我有一個每年都在增長的高流量網站,我們注意到了一些性能問題。 我們正在使用 LeanSentry,我們在 T4MVC URL 一代中看到了這些類型的 CPU 峰值。 下面是一個高 CPU 使用率快照,其中提供了這些代碼行。

這是一個有效的擔憂還是別的什么?

在此處輸入圖像描述

性能命中代碼生成 URL 的示例

protected virtual void PopulateScheduleGameLinks(List<ScheduleGroupDisplay<ScheduleGameDisplay>> gamesGroup)
        {
            gamesGroup.SelectMany(q => q.Games)
                .ToList()
                .ForEach(
                    q =>
                    {
                        foreach (var asset in q.Assets)
                        {
                            asset.Url = Helper.GetFilePath(asset.Url, asset.Version);
                        }

                        if (q.ExternalId != null)
                        {
                            long ticks;
                            if (long.TryParse(q.ExternalId, out ticks) &&
                                q.StatisticsType != StatisticsType.MyStatsOnline &&
                                q.StatisticsType != StatisticsType.ScorebookPlus &&
                                q.Assets.All(t => t.Type != GameAssetType.Scoresheet))
                            {
                                q.Assets.Add(new ScheduleGameAssetDisplay
                                {
                                    Type = GameAssetType.Scoresheet,
                                    Url = Url.Action(MVC.EventReports.GameStatistics(q.EventId, null, q.Id.ToString()).AddReportPdf().AddRouteValue(Config.QueryString.Version, ticks))
                                });
                            }
                        }

                        q.LiveGameLink = this.BuildScoreCastUrl(q.StatisticsType, q.ExternalId, null, q.Id, q.EventId, q.SportHost, q.EventName.GenerateSlug());
                        q.CalendarLink = Url.Action(MVC.Calendar.Game(q.Id));
                    });

        }

在此處輸入圖像描述

在此處輸入圖像描述

除了調用UrlHelper.RouteUrl (它是MVC 的一部分)之外,T4MVC 本身在這里並沒有做太多事情。 所以我懷疑如果你不使用 T4MVC 直接使用UrlHelper.RouteUrl來生成 URL,你會看到同樣的事情。

可能是這種 MVC 方法有點昂貴,並且性能問題是由於對它的調用過多而無法呈現單個頁面(例如,如果頁面非常復雜並且包含許多生成的 URL)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM