我有一个VB.NET ASP.NET(4.6.1)MVC应用程序,它是使用新的Roslyn编译器构建的。
每当我更改(vbhtml)文件并重新加载页面时,重新加载页面大约需要9秒钟。 在这段时间内,vbc.exe和VBCSCompiler.exe正在运行:
我找不到任何关于这种缓慢性能的提示(使用ANTS配置文件),我的系统应该足够快,以便更快地处理请求(Windows 10 x64,i7-2600,16GB RAM,所有文件的Samsung SSD)
我也试过了新的Roslyn Builds,但没有改变:
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform"version="1.0.1" targetFramework="net452" />
任何想法,我怎样才能获得更好的重装时间?
UPDATE1:当删除软件包Microsoft.CodeDom.Providers.DotNetCompilerPlatform时,我的页面重新加载时间会降至<500毫秒!
答案 0 :(得分:7)
新编译器需要几秒钟才能启动,因为它需要JIT许多IL程序集。 Ngen编译器及其依赖程序集将有助于缩短启动时间。你可以做的是找到编译器程序集并执行
var records = {};
$(function(e){
records['123'] = {};
records['456'] = {};
records['123']['rec_id'] = 4456;
records['123']['created_at'] = '';
records['123']['assigned_at'] = '';
records['123']['sys_id'] = 1745;
records['456']['rec_id'] = 4456;
records['456']['created_at'] = '';
records['456']['assigned_at'] = '';
records['456']['sys_id'] = 1745;
$.each(records, function(callID, record){
record['campaign_id'] = '1';
record['offset'] = 123;
record['attempt'] = '7';
record['phone'] = '800-123-4567';
record['identity'] = 123;
record['code'] = 'Some Code';
record['notes'] = 'Some notes';
record['completed_by'] = 'Mike A';
record['name'] = null;
record['completed_at'] = "";
});
$('#d').click(function(e){
$('#s').text( JSON.stringify(records) );
});
});
您需要从提升的控制台运行上述命令。如果您的计算机是64位,则可能需要使用64位ngen.exe。通常,64位ngen.exe位于C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319。
答案 1 :(得分:5)
仅供参考,我一直在与微软合作解决这个问题,并不像NGENing那样简单。他们正在努力解决这个问题,其中一个是Roslyn编译器本身。您可以在此处跟踪该错误:https://github.com/dotnet/roslyn/issues/10413。如果公共跟踪器上出现其他错误,我一定会链接到它。