resharper - R# makes my Visual Studio 2012 go into 9% CPU usage every couple of minutes plus intense I/O -
resharper - R# makes my Visual Studio 2012 go into 9% CPU usage every couple of minutes plus intense I/O -
the 9% cpu usage accompanied unusually high i/o total rate reported process hacker. namely in mb/s whereas rest in kb/s. has notable effect on user experience within visual studio - lagging.
solution wide analysis disabled. huge source files (above 1mb in size) excluded r# the entire source code tree on ssd drive. one solution contains 73 projects. 1 - 115 projects. no such influxes in cpu , io utilization occur when r# disabled.i have browsed through various q/a sites on internet. advices can see there - turn off or feature not acceptable me - want r# features.
any ideas?
edit
i did analysis using sysinternals process monitor. first, have captured events during abnormal operation (9% cpu , high i/o) , during normal operation. capture format csv , file scheme events saved. visual studio did nil visibly useful during time, except beingness open same solution of 116 projects.
both logs available in https://www.dropbox.com/s/aq8660wek84uais/vs2012_r%238_procmon_logs.7z?dl=0 compressed in 7z archive.
more that, have dumped both logs sql server 2012 database. 7z compressed backup of available here - https://www.dropbox.com/s/kgb1zg4yqx9e94y/vs2012_r%238_procmon_logs_sqlserver2012.bak.7z?dl=0
the difference between 2 info sets striking. have run few queries, below results:
select 'bad',datediff(second, min(ts),max(ts)) 'interval (sec)', count(1) count logfile union select 'good',datediff(second, min(ts),max(ts)) 'interval (sec)', count(1) count logfile2 (no column name) interval (sec) count bad 96 45814 100 2042
the bad session captured 22 times more file scheme i/o events during same time interval!
next wanted see list of files both sessions accessing.
first bad session:
select count(1) count,path ( select case when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\configuration%.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\configurationnnnn.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%\gettargetpath.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\gettargetpath.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%\resolveprojectreferences.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveprojectreferences.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%\resolveassemblyreferences.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveassemblyreferences.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn"' else path end path logfile ) info grouping path having count(1) > 99 order count(1) desc
now results are:
count path 6718 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\configurationnnnn.cache" 4704 "c:\users\mkharitonov\appdata\local\temp\{181573c4-a37b-468b-9c8a-cbd9a1fbf4dc}\system.data.sqlite.dll" 4240 "c:\windows\syswow64\atiumdva.cap" 4095 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn" 3529 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\gettargetpath.cache" 1022 "c:\users\mkharitonov" 537 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client" 506 "c:\program files (x86)\msbuild\4.0\microsoft.common.targets\importafter" 444 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn" 321 "c:\program files (x86)\reference assemblies\microsoft\framework\silverlight\v5.0\mscorlib.dll" 315 "c:\dayforce\sharptop\ui\dynapanel\bin\debug\dynapanel.dll" 302 "c:\dayforce\sharptop\ui\benefits\mybenefits\obj\debug\mybenefits.csprojresolveassemblyreference.cache" 295 "c:\dayforce\sharptop\ui\payroll\payrollmanagement\obj\debug\payrollmanagement.csprojresolveassemblyreference.cache" 262 "c:\dayforce\sharptop\ui\benefits\benefitsadmin\obj\debug\benefitsadmin.csprojresolveassemblyreference.cache" 256 "c:\dayforce\sharptop\ui\vacationbidding\obj\debug\vacationbidding.csprojresolveassemblyreference.cache" 252 "c:\dayforce\sharptop\ui\controlsex\bin\debug\controlsex.dll" 246 "c:\dayforce\sharptop\ui\benefits\benefitsmanagement\obj\debug\benefitsmanagement.csprojresolveassemblyreference.cache" 234 "c:\users\mkharitonov\appdata\local\jetbrains\resharper\v8.2\solutioncaches\_resharper.main.1029040524\caches_format_version" 208 "c:\users\mkharitonov\appdata\local\jetbrains\resharper\v8.2\solutioncaches\_resharper.main.1029040524\persistentcaches" 189 "c:\users" 189 "c:\dayforce\sharptop\ui\ruleenginedataproviderclient\bin\debug\ruleenginedataproviderclient.dll" 189 "c:\dayforce\sharptop\ui\ruleengineclient\bin\debug\ruleengineclient.dll" 162 "c:\dayforce\sharptop\ui\ruleengineclient\bin\debug\dfresources.dll" 153 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.windows.controls.data.dll" 153 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.windows.controls.dll" 153 "c:\program files (x86)\microsoft visual studio 11.0\common7\ide" 152 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveassemblyreferences.cache" 151 "c:\dayforce\sharptop\ui\clientdata\clientdata.csproj" 151 "c:\dayforce\sharptop\ui\dynapanel\dynapanel.csproj" 151 "c:\dayforce\sharptop\ui\proxyservice\proxyservice.csproj" 151 "c:\dayforce\sharptop\ui\controls\controls.csproj" 151 "c:\dayforce\sharptop\ui\utility\utility.csproj" 150 "c:\dayforce\sharptop\ui\controls\bin\debug\controls.dll" 150 "c:\dayforce\sharptop\ui\clientdata\bin\debug\clientdata.dll" 150 "c:\dayforce\sharptop\ui\proxyservice\bin\debug\proxyservice.dll" 150 "c:\dayforce\sharptop\ui\utility\bin\debug\utility.dll" 150 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.windows.controls.data.input.dll" 142 "c:\" 138 "c:\program files (x86)\msbuild\microsoft\silverlight\v5.0\microsoft.ria.client.targets" 138 "c:\windows\microsoft.net\framework\v4.0.30319\microsoft.servicemodel.targets" 138 "c:\windows\microsoft.net\framework\v4.0.30319\microsoft.xaml.targets" 138 "c:\windows\microsoft.net\framework\v4.0.30319\microsoft.workflowbuildextensions.targets" 138 "c:\windows\microsoft.net\framework\v4.0.30319\microsoft.winfx.targets" 138 "c:\windows\microsoft.net\framework\v4.0.30319\microsoft.data.entity.targets" 138 "c:\program files (x86)\windows kits\8.0\bin\x86\signtool.exe" 138 "c:\program files (x86)\msbuild\microsoft\visualstudio\v11.0\codeanalysis\microsoft.codeanalysis.targets" 138 "c:\program files (x86)\msbuild\microsoft\visualstudio\v11.0\fakes\microsoft.qualitytools.testing.fakes.targets" 138 "c:\program files (x86)\msbuild\4.0\microsoft.common.props" 138 "c:\program files (x86)\microsoft visual studio 11.0\team tools\static analysis tools\rule sets\nativerecommendedrules.ruleset" 138 "c:\program files (x86)\msbuild\microsoft\visualstudio\v11.0\teamtest\microsoft.teamtest.targets" 135 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.componentmodel.dataannotations.dll" 135 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.windows.controls.input.dll" 135 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.windows.data.dll" 128 "c:\dayforce\sharptop\dependencies\silverlight5\toolkit\bin" 126 "c:\dayforce\sharptop\ui\accrualengineclient\bin\debug\accrualengineclient.dll" 126 "c:\dayforce\sharptop\ui\myreports\bin\debug\dayforce.myreports.dll" 126 "c:\dayforce\sharptop\dependencies\silverlight5\toolkit\bin\system.windows.controls.toolkit.dll" 123 "c:\dayforce\sharptop\ui\controlsex\controlsex.csproj" 122 "c:\dayforce\sharptop\ui\accrualenginedataproviderclient\bin\debug\accrualenginedataproviderclient.dll" 114 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.xml.serialization.dll" 105 "c:\program files (x86)\microsoft sdks\silverlight\v5.0\libraries\client\system.xml.linq.dll" 103 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveprojectreferences.cache"
now same query session without having
filter (table logfile2):
count path 1344 "c:\users\mkharitonov\appdata\local\temp\{181573c4-a37b-468b-9c8a-cbd9a1fbf4dc}\system.data.sqlite.dll" 306 "c:\users\mkharitonov\appdata\local\jetbrains\resharper\v8.2\solutioncaches\_resharper.main.1029040524\caches_format_version" 272 "c:\users\mkharitonov\appdata\local\jetbrains\resharper\v8.2\solutioncaches\_resharper.main.1029040524\persistentcaches" 69 "c:\users\mkharitonov" 34 "c:\users\mkharitonov\appdata\local\jetbrains\resharper\v8.2\solutioncaches\_resharper.main.1029040524\persistentcaches\*" 9 "c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5.2\accessibility.dll" 7 "c:\program files (x86)" 1 "c:\users\mkharitonov\appdata\roaming\microsoft\visualstudio\11.0\autorecoverdat\17064.dat"
one can examine info in many different ways, lastly query want run see how many successful writes there. using same query before, except where operation='"writefile"' , result='"success"'
filter beingness added nested select statement. this:
select count(1) count,path ( select case when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\configuration%.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\configurationnnnn.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%\gettargetpath.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\gettargetpath.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%\resolveprojectreferences.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveprojectreferences.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%\resolveassemblyreferences.cache"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveassemblyreferences.cache"' when path '"c:\users\mkharitonov\appdata\local\temp\msbuild%\results%"' '"c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn"' else path end path logfile operation='"writefile"' , result='"success"' ) info grouping path order count(1) desc
first bad session:
count path 3321 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\configurationnnnn.cache" 98 "c:\dayforce\sharptop\ui\benefits\mybenefits\obj\debug\mybenefits.csprojresolveassemblyreference.cache" 97 "c:\dayforce\sharptop\ui\payroll\payrollmanagement\obj\debug\payrollmanagement.csprojresolveassemblyreference.cache" 85 "c:\dayforce\sharptop\ui\benefits\benefitsadmin\obj\debug\benefitsadmin.csprojresolveassemblyreference.cache" 82 "c:\dayforce\sharptop\ui\vacationbidding\obj\debug\vacationbidding.csprojresolveassemblyreference.cache" 77 "c:\dayforce\sharptop\ui\benefits\benefitsmanagement\obj\debug\benefitsmanagement.csprojresolveassemblyreference.cache" 46 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\gettargetpath.cache" 33 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveassemblyreferences.cache" 15 "c:\users\mkharitonov\appdata\local\temp\msbuildnnnn\resultsnnnn\resolveprojectreferences.cache"
now session. wait, there no writes @ (failed , succeeded alike) in session!
i emphasize, bad behavior observed when r# 8 enabled , solution big enough. when suspend r#, good.
let me know if there else can help folks out there help me.
edit 2
i/o usage less stable, high, sometime low. 9% cpu pretty stable , nil machine, renders visual studio barely usable.
everything returns normal 1 time suspend r#. then, not have r#.
p.s.
https://youtrack.jetbrains.com/issue/rsrp-425890
for still using r# 8 , suffering, solution upgrade advised in https://youtrack.jetbrains.com/issue/rsrp-425890
resharper
Comments
Post a Comment