首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T4MVC和性能问题

T4MVC和性能问题
EN

Stack Overflow用户
提问于 2021-05-14 20:12:42
回答 1查看 34关注 0票数 0

我已经使用T4MVC很长一段时间了。我有一个高流量的网站,它每年都在增长,我们注意到了一些性能问题。我们正在使用LeanSentry,并且我们看到在我们的T4MVC网址生成中出现了这些类型的CPU峰值。下面是一个高CPU使用率快照,其中提供了这些代码行。

这是一个合理的担忧还是其他什么?

性能命中代码生成URLS的示例

代码语言:javascript
复制
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));
                    });

        }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-15 03:25:47

除了调用UrlHelper.RouteUrl (即part of MVC )之外,T4MVC本身并没有做太多的事情。所以我猜想如果你不使用T4MVC直接使用UrlHelper.RouteUrl来生成URL,你也会看到同样的事情。

这可能是因为这种MVC方法有点昂贵,性能问题是由于对它的调用太多而无法呈现单个页面(例如,如果页面非常复杂,并且包含许多生成的URL)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67534164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档