BuildWebsite spikes CPU

I have a DotNetNuke web site project that I work on, and with R# installed the CPU will spike periodically to 50+%, the size and time of which depends on the size of the project/solution.  I don't need to be doing anything in VS.NET to cause it, just have the web site open in VS.NET.  I don't edit files or run the site in my browser, or even need focus on VS.NET itself.  In fact I shut my local IIS down to make sure no files were being processed or what not.

I ran dotTrace and uploaded the profiles to the FTP site (dnn-snapshots.zip).  There are 2 of them inside the zip. resharper-dnn-my-project-after-startup is loading my particular web site, a customized DNN website with about 50+ DesktopModules installed.  Plus various files that were previously uploaded to the portal and are stored in the web site directories.  In other words, a fair amount of files (tho the uploads are images, etc. so they should be ignored).  This snapshot is taken after the initial solution load.  After a minute or so, the cycle starts where the CPU spikes for about 20 secs.  Then waits a minute or two, then does another go-round.

The other snapshot is of a smaller project.  It is of the base website/install for DNN, which you can download the source of here (see Recommended Download):

http://dotnetnuke.codeplex.com/releases/view/63026

If you load that web site into VS.NET, you'll see the spike during startup and afterwards.  This snapshot is again after loading (after the CPU settles the first time, waiting for the next spike).  The spike is much smaller for this site as there are very few modules and files in a base install, but it still happens for a matter of seconds.  And again this is a 'starter' site that grows as you customize it.

I tried capturing a snapshot while VS.NET loaded the solutions, as that process is really slow, but those files are too large to upload.

I noted a large amount of time in these cycles is spent on a BuildWebsite process.  I can obviously guess what that process does, but it runs over and over even when no files are changed.  Which is not ideal in my opinion.  This CPU spike is the biggest cause of grief for me with R# right now and why I can't use it fulltime.  I have DNN sites I work on and all of them exhibit this behavior, and R# can't 'handle' them.  Not without slowing me or my PC down.  I hope this process can be more streamlined or worst case configurable so I can fully use R#.  Other products I've tried work fine in web sites and don't consistently barrage the CPU looking for possible changes.

VS.NET 2010 on Win 7 x64, R# build 2155, all other extensions disabled.  For my project, I have added a list of folders for R# to ignore, but that seems to have no effect on the spike.

4 comments

Hello,

Thank you for detailed report. Snapshot resharper-dnn-after-startup.dtp shows
no ReSharper activity. Snapshot resharper-dnn-my-project-after-startup.dtp
shows that ReSharper calls ClientBuildManager.PrecompileApplication once
for your web-site which may be causing the spike. This activity is required
for ReSharper to properly handle classes generated by your custom build providers
and it is invoked whenever something related has changed. Could you please
gather a snapshot for a longer period of time (so that it will capture several
CPU spikes) while you're doing nothing with Visual Studio? Thank you!

Andrey Serebryansky
Senior Support Engineer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

I have a DotNetNuke web site project that I work on, and with R#
installed the CPU will spike periodically to 50+%, the size and time
of which depends on the size of the project/solution.  I don't need to
be doing anything in VS.NET to cause it, just have the web site open
in VS.NET.  I don't edit files or run the site in my browser, or even
need focus on VS.NET itself.  In fact I shut my local IIS down to make
sure no files were being processed or what not.

I ran dotTrace and uploaded the profiles to the FTP site
(dnn-snapshots.zip).  There are 2 of them inside the zip.
resharper-dnn-my-project-after-startup is loading my particular web
site, a customized DNN website with about 50+ DesktopModules
installed.  Plus various files that were previously uploaded to the
portal and are stored in the web site directories.  In other words, a
fair amount of files (tho the uploads are images, etc. so they should
be ignored).  This snapshot is taken after the initial solution load.
After a minute or so, the cycle starts where the CPU spikes for about
20 secs.  Then waits a minute or two, then does another go-round.

The other snapshot is of a smaller project.  It is of the base
website/install for DNN, which you can download the source of here
(see Recommended Download):

http://dotnetnuke.codeplex.com/releases/view/63026

If you load that web site into VS.NET, you'll see the spike during
startup and afterwards.  This snapshot is again after loading (after
the CPU settles the first time, waiting for the next spike).  The
spike is much smaller for this site as there are very few modules and
files in a base install, but it still happens for a matter of seconds.
And again this is a 'starter' site that grows as you customize it.

I tried capturing a snapshot while VS.NET loaded the solutions, as
that process is really slow, but those files are too large to upload.

I noted a large amount of time in these cycles is spent on a
BuildWebsite process.  I can obviously guess what that process does,
but it runs over and over even when no files are changed.  Which is
not ideal in my opinion.  This CPU spike is the biggest cause of grief
for me with R# right now and why I can't use it fulltime.  I have DNN
sites I work on and all of them exhibit this behavior, and R# can't
'handle' them.  Not without slowing me or my PC down.  I hope this
process can be more streamlined or worst case configurable so I can
fully use R#.  Other products I've tried work fine in web sites and
don't consistently barrage the CPU looking for possible changes.

VS.NET 2010 on Win 7 x64, R# build 2155, all other extensions
disabled.  For my project, I have added a list of folders for R# to
ignore, but that seems to have no effect on the spike.

---
Original message URL:
http://devnet.jetbrains.net/message/5304841#5304841



0

Perhaps I uploaded an incorrect snapshot for the first one you talk about.  But here is what I see for resharper-dnn-after-startup.dtp:
resharper-dnn.jpg

both snapshots are very similar with respect to the threads and processes they run through.  As noted this snapshot is after initial load, the project has loaded and I just let it sit there after devenv.exe settles to 0%.  I never build or edit files, or hit the site or anything.

I can try to get a snapshot of multiple spikes.  Only depends on how large the file gets, hopefully not as large as the startup log for this project above (500MB+).

0

I've uploaded resharper-dnn-my-project-3-spikes.zip  You'll see it calls BuildWebsite 3 times in the time I captured.  I was doing nothing in VS.NET or on the website.  R# keeps firing the event again and again.

0

Hello,

Thank you! We will look into this problem and I'll write back with results.

Andrey Serebryansky
Senior Support Engineer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

http://devnet.jetbrains.net/message/5305001#5305001



0

Please sign in to leave a comment.