razorengine运行极慢

mirrorspace 2018-06-18 01:04:44
遇到个不知道如何解决的问题

环境 WIN10 VS2017 CMMT RazorEngine 3.10.0.0

为了实现编译CSHTML静态页,而使用RazorEngine这个开源库.

1.在VS中新建一个控制台应用程序,以测试编译一个CSHTML页面
using (var service = RazorEngineService.Create(config))
{
// 载入CSHTML页面
string cshtmlCont = File.ReadAllText("index.cshtml");
// 将页面添加到编译
service.AddTemplate(key, cshtmlCont );
// 编译进行,得到编译后页面,在VS插件程序中执行时,此处就像阻塞了一样,需要18分钟才执行完
string html = service.RunCompile(key);


File.WriteAllText("index.html", html);
}
这段程序运行时,完全没有问题执行速度不到1秒钟.结果也得到了编译后的静态HTML页面

2.问题是,做了一个VISX的VS2017插件程序,然后执行上面的代码.结果就在RunCompile()这个方法处,耗时非常长,过了18分钟


在这漫长的执行过程中.任务管理器发现CPU时间占用最多的



3.这是在VS调试插件时的截图.
问题是,同样的代码,在控制台中运行,和在插件中调用, 为什么出现这种情况.这肯定是不正常的情况了.
试过DEBUG,X86 RELEASE方式,都是这样的结果.
要如何解决这问题?
...全文
1378 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirrorspace 2018-07-31
  • 打赏
  • 举报
回复
你才330豪秒,这是正常情况了.没问题.我那个是18分钟编译一个页面
后来发现razorengine有一个选项,使用RoslynCompiler编译工具.结果就好了.你可以试一试.但你肯定不是这情况

config.CompilerServiceFactory = new RazorEngine.Roslyn.RoslynCompilerServiceFactory();

引用 5 楼 daocaoren9333 的回复:
我也使用了RazorEngine,运行速度差强人意,执行一个简单的页面要330毫秒,请问你是怎么解决的吗?有什么好的办法吗
daocaoren9333 2018-07-24
  • 打赏
  • 举报
回复
我也使用了RazorEngine,运行速度差强人意,执行一个简单的页面要330毫秒,请问你是怎么解决的吗?有什么好的办法吗
mirrorspace 2018-06-25
  • 打赏
  • 举报
回复
解决了.....
mirrorspace 2018-06-19
  • 打赏
  • 举报
回复
目前 使用的是那个razorengine.dll这个,没有使用.netmvc的razor引擎
引用 1 楼 tangyanzhi1111 的回复:
cshtml最终会被编译为 webviewpage或 webviewpage<tmodel>,以一个view文件夹下所有视图编译为程序集,后者tmodel是controller赋view的强类型。实际上这个engine你可以继承自iviewengine,.netmvc提供了相应的规范和接口。具体继承层次为webpageexecutingbase–>webpagerendingbase–>webpagebase最后就是上面的webviewpage。
江湖评谈 2018-06-18
  • 打赏
  • 举报
回复
cshtml最终会被编译为 webviewpage或 webviewpage<tmodel>,以一个view文件夹下所有视图编译为程序集,后者tmodel是controller赋view的强类型。实际上这个engine你可以继承自iviewengine,.netmvc提供了相应的规范和接口。具体继承层次为webpageexecutingbase–>webpagerendingbase–>webpagebase最后就是上面的webviewpage。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧