【发布时间】:2014-04-22 22:43:50
【问题描述】:
我的小组正在使用 RazorEngine 生成各种网页。一个这样的模板大小约为 200 KB。有大约 60 个要替换的令牌条目。我可以看到模板中没有实际的 Razor/C# 逻辑。我们正在使用以下调用:
returnContent = Razor.Parse(content, model, cacheKey);
问题出在运行 Windows 2008 R2 的 AWS 服务器上,解析页面大约需要 20 秒。我什至将调用分解为 Razor.Compile 和 Razor.Run。 20 秒来自 Razor.Run。 AWS 实例大小合适(c3.xlarge)。上面没有运行似乎占用 CPU 或内存的东西。
如果我删除除一个之外的所有 @ 符号,则解析时间会缩短到不到 1 秒。
当我在 VS 2012 下的笔记本电脑上使用 60 个令牌引用执行相同的代码和模板时,它会在不到一秒的时间内返回。
关于为什么 RazorEngine 在服务器上花费这么长时间有什么想法吗?谢谢。
【问题讨论】:
-
更多奇怪。如果我使用 Redgate ANTS 分析服务器上的网站,Razor.Parse 调用需要 1 - 2 秒。 ANTS 分析使用服务器上的 IE 进行调用。然后,如果我在服务器上手动调用 IE 中的 URL,我会回到大约 20 秒来执行 Razor.Parse。有什么想法吗?
标签: c# razor amazon-ec2 razorengine