Loading solutions & Applying changes dialog

Hi,

In my solution i reference large assemblies like Mshtml.dll and of
course of the System dll's. When loading the solution, i see a
dialogbox with applying changes for quite some while.

As a user I understand i have to wait for a reparse when an assembly
changes (best is now wait offcourse), but what i do not understand is
why i have to wait every time i load the same solution with the same
assemblies? I would expect that R# would cache the stuff until a new
version of the dll is requested.

Bye,

Ward

7 comments
Comment actions Permalink

Hello Ward,

in fact ReSharper should cache information from system assemblies and not
parse them on subsequent loads.
Could you please check your ReSharper system caches folder
("C:\Documents and Settings\]]>\Local Settings\Application Data\JetBrains\ReSharper\caches\",
if you've not
changed its location explicitly) - what are timestamps of the files there?


Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Hi,

In my solution i reference large assemblies like Mshtml.dll and of
course of the System dll's. When loading the solution, i see a
dialogbox with applying changes for quite some while.

As a user I understand i have to wait for a reparse when an assembly
changes (best is now wait offcourse), but what i do not understand is
why i have to wait every time i load the same solution with the same
assemblies? I would expect that R# would cache the stuff until a new
version of the dll is requested.

Bye,

Ward



0
Comment actions Permalink

Hello Dmitry,

I also see this - System dll's are always parsed at the load of a solution!

I just checked: File stamos in cache were half past five Friday evening
Loaded VS.NET and last solution
Got the old dialogue:

Resharper
Applying changes.
System.XXXX (etc)


Now the caches are stamped 18th 00:36

Does this in any way relate to the re-scan of the current file that happens
when switching back to VS.NET from another app?

BTW: Just took delivery of brand new Dell Precision M70 (2G ram, 60G hd,
2.13G centrino) which kicks ass and cold-loading a solution the above scan
takes well over 30 seconds for my 20 project solution!

Ronnie

Hello Ward,

in fact ReSharper should cache information from system assemblies and
not
parse them on subsequent loads.
Could you please check your ReSharper system caches folder
("C:\Documents and Settings\<user>\Local Settings\Application
Data\JetBrains\ReSharper\caches\",
if you've not
changed its location explicitly) - what are timestamps of the files
there?
Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

>> Hi,
>>
>> In my solution i reference large assemblies like Mshtml.dll and of
>> course of the System dll's. When loading the solution, i see a
>> dialogbox with applying changes for quite some while.
>>
>> As a user I understand i have to wait for a reparse when an assembly
>> changes (best is now wait offcourse), but what i do not understand is
>> why i have to wait every time i load the same solution with the same
>> assemblies? I would expect that R# would cache the stuff until a new
>> version of the dll is requested.
>>
>> Bye,
>>
>> Ward
>>


0
Comment actions Permalink

Jst wanted to add, I'm seeing this aswell. The same goes for installed components, like ComponentOne and such...

0
Comment actions Permalink

Hello Jesse and Ronnie,

Resharper should cache information about system assemblies in system caches
and other assemblies
referenced in the solution in solution's directory (in a folder named '_ReSharper*').
However,
it still takes some time to load this cached information from disk, and at
the moment this information is loaded,
the name of the corresponding assembly is displayed in the progress dialog.
So, there is no way to distinguish
visually if an assembly is parsed or loaded from cache. However, loading
from cache should be much faster.

Try a simple experiment: delete system caches (see a previous post) and caches
in the solution directory. Does
the time needed to load solution change after that?

Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Jst wanted to add, I'm seeing this aswell. The same goes for installed
components, like ComponentOne and such...



0
Comment actions Permalink

Yeah, that is a tat bit slower, but it isn't as much as I had expected. Maybe the serialization/deserialization chosen for the caches isn't optimal... The fact that my system has a slow, low cache, fragmented harddrive might also have something to do with it...

0
Comment actions Permalink

Hello Jesse,

yes, you're right - currently usefulness of caches is adversely affected
by serialization/deserialization overhead.
We're working on improving its performance.


Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Yeah, that is a tat bit slower, but it isn't as much as I had
expected. Maybe the serialization/deserialization chosen for the
caches isn't optimal... The fact that my system has a slow, low cache,
fragmented harddrive might also have something to do with it...



0
Comment actions Permalink

Hello Dmitry,

I don't get any huge difference between:
1. Caches intact
2. Deleted system cache
3. Deleted system and solution cache.

It does take longer first time round (I have done all of the tests quitting
VS each time, but the first cycle still took slightly longer!)

Timings were approx:
1. 6.5s
2. 6.7s
3. 9.0s

Ronnie

Hello Jesse and Ronnie,

Resharper should cache information about system assemblies in system
caches
and other assemblies
referenced in the solution in solution's directory (in a folder named
'_ReSharper*').
However,
it still takes some time to load this cached information from disk,
and at
the moment this information is loaded,
the name of the corresponding assembly is displayed in the progress
dialog.
So, there is no way to distinguish
visually if an assembly is parsed or loaded from cache. However,
loading
from cache should be much faster.
Try a simple experiment: delete system caches (see a previous post)
and caches
in the solution directory. Does
the time needed to load solution change after that?
Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

>> Jst wanted to add, I'm seeing this aswell. The same goes for
>> installed components, like ComponentOne and such...
>>


0

Please sign in to leave a comment.