Author |
Topic |
|
Erik Olofsson
Tomato Guru
111 Posts |
Posted - Jan 22 2010 : 11:55:05 AM
|
During my work converting our current projects to Visual Studio 2010 I noticed the following:
- Crashes sometimes when changing files quickly, such as when searching in multiple files holding in F4 / Shift-F4.
- "Cannot set allocations" when starting the IDE. Often when this starts to happen I restart the IDE several times and it keeps happening each time. Sometimes it works several times in a row. Normally I can open the IDE if I open the sln file directly instead.
- Typing a { is really slow. Typing a } is slow but not as slow. Try by holding the { key down. Generally to not interfere with a fast typer you should try to keep the processing time of a key/character message to below 5 ms
- Typing ; is really slow.
- Typing ( and ) or [ and ] is pretty slow. My 80 CPS repeat rate shows this.
- All this with highlighting disabled.
- If you bring up the parameter list with ctrl+shift+space the parameter highlighting is not updated as you move the cursor (this is not new for VS2010).
- Starting Visual Studio is slowed down considerably with a hang in the beginning.
- With the default IntelliSense engine much better in VS2010 would it be possible to get Visual Assist to use only the default intellisense disabling the built in parser?
- When you enable suggestions "Auto list members" option for the editor is ignored. It might be good to get the suggestions when pressing ctrl+space instead.
- Recording macros is still slowed down, but not to the same extent as in VS2008.
|
Cutting Edge Project Management http://www.hansoft.se |
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Jan 25 2010 : 5:03:28 PM
|
When the IDE crashes does it simply disappear, or do you get any form of dialog? I am wondering if you would be able to grab a minidump of one of these crashes. I have been spending a lot of time in VS2010 Beta 2 over the last month, and I have never seen this crash behaviour myself.
"Cannot set allocations", this has also been reported here: http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=9212
but so far we have no idea what is triggering this. Can you please go to:
VA Options -> System Info -> Copy Info
and paste the details (from the clipboard) into your reply. This will give us the basic information about your setup.
Do you have any other addins/extensions installed when this occurs?
A native (unmanaged) minidump taken when the message box is being displayed could be helpful.
Slow typing of brackets, do you have:
VA Options -> Advanced -> Correction -> insert () and closing } ) ] ' "
turned On or Off? If this is turned On can you please try turning it Off and see if this has any effect?
There is definitely an odd problem with the keyboard repeat rate for typing semi-colon's:
case=38680
Parameter info tooltips and items going bold, this should be fixed in the next build, which we are hoping to post in the next day or two.
Starting VS2010, my experience is that this is just very slow when compared to the other IDE's. There does seem to be an extra delay with VA installed, this is something we are going to have to keep an eye on. Remember the IDE is still a moving target at this stage, and Microsoft are apparently working on optimising it themselves.
The parser, we are interested in the IDE's parser, but as I understand it, it does not generate the information we require to do the C++ refactoring we do, so we need to run our own parser in parallel, at least for now.
The IDE "Auto list members" option, which programming language are you working in? Can you post a code example that shows the problem, and are you turning this option On or Off? Based on a quick test here in C++ the option is working correctly for me. |
zen is the art of being at one with the two'ness |
|
|
Erik Olofsson
Tomato Guru
111 Posts |
Posted - Feb 02 2010 : 2:10:46 PM
|
I will email you with a FTP where you can download crash dumps, "Copy Info" and settings.
Crashes One of the following happens when starting: Hang, crash or "cannot set allocations", or maybe one time of ten it opens successfully! (See HangAtStartup_Full.zip HangAtStartup_Mini.zip VAXStartupCrash_Full.zip VAXStartupCrash_Mini.zip CannotSetAllocations_Full.zip CannotSetAllocations_Mini.zip)
I have noticed however that if I'm working with my single monitor layout it succellfully loads much more often. See Settings.zip on FTP. Import ErikVS2010-2010-01-26.vssettings, and then VS2010_MultiMonitor.vssettings for crashes and "cannot set allocations" often.
No other extensions installed.
Slow brackets All correction options are turned off. See Settings.zip.
Parameter Info going bold Still the same in version 1810.
Performance Counted as when the IDE becomes responsive after an operation. Startup time (With VA): 7.5 seconds Startup time (Without VA): 1.5 seconds Load solution time (With VA): 8.4 seconds Load solution time (Without VA): 1.5 seconds
Disable parser It would be acceptable to disable refactoring features when disabling the internal VA parser.
Auto list suggestions (Options->Text Editor->C/C++): Auto list members: Off Parameter information: Off
If you enable "Include suggestions in listboxes". Presumably to allow suggestions to be displayed when pressing Ctrl+space.
With these options suggestions list boxes appear automatically even though I have not pressed Ctrl+Space. See the following example code:
class CTest
{
public:
int m_Test;
};
int _tmain(int argc, _TCHAR* argv[])
{
CTest Test;
// Start typing Test here
return 0;
}
|
Cutting Edge Project Management http://www.hansoft.se |
|
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Feb 02 2010 : 6:15:15 PM
|
I have the email, many thanks for this.
Crashes The fact that changing the monitor layout is a factor in the crashes bothers me quite a lot. When you change monitor layouts are you changing computers? Using remote desktop? Anything like this?
When you are using multiple monitors, how many monitors are you using and how are they organised? I can try and setup the same monitor layout here in a virtual machine. I normally work with 2 monitors, organised like this:
2 1
so the primary monitor is on the right. It is *possible* your video card drivers are a factor here. Are you running any software / utilities to help you work with multiple monitors, e.g. Ultramon, or something bundled with the graphics card drivers?
I have asked our developers about these mini dump files. Thank you for producing three, hopefully we will get some clues from these.
Slow brackets What are you tying when you see this problem?
Parameter Info going bold I wonder if we are talking about the same thing here. I have added the following code to a cpp file:
static void testParamTooltipCallMe(int nParamOne, long nParamTwo, float fParamThree) { }
static void testParamTooltipCalling()
{
testParamTooltipCallMe(1, 2, |3.4);
}
and with the caret at the indicated position I press CTRL-SPACE, and this is what I see:
am I doing the right or the wrong thing? I am only getting one bold parameter. As I move the caret left and right I still only get one bold parameter.
Performance Can you define "an operation"? Does this happen while the IDE and the solution is open, while you are working on code? There is a delay on getting the IDE open and the solution open, but that is only the once, on startup.
Our parser, it is tied into a lot of VA features, but it should not cause any significant performance hit under normal conditions. This is something we work hard to ensure. But it sounds like you are suffering from serous performance problems, and we need to find out why.
Auto list suggestions *ah* this one I can explain. The options:
(Options->Text Editor->C/C++): Auto list members: Off Parameter information: Off
do not apply to your code sample. list members effects after dot and ->, and parameter information is after typing round brackets for function parameters.
Here you should be seeing VA suggestions:
http://www.wholetomato.com/products/features/suggestion.asp
Turning on:
VA Options -> Advanced -> Display -> use tomato icons in listboxes and tooltips to mark Visual Assist X content
helps here, since it lets you tell when VA is producing a listbox or tooltip. |
zen is the art of being at one with the two'ness |
|
|
Erik Olofsson
Tomato Guru
111 Posts |
Posted - Feb 03 2010 : 12:19:43 PM
|
Crashes I use the single monitor layout for remote desktop, and the multi monitor layout otherwise. But the frequency of crashes has nothing to do with remote desktop.
I noticed that the crashes were less apparent when I kept using the single monitor layout even though I was working on the computer locally.
So, always the same computer. Monitor layout:
2222222 1111111111111111111 3333333
2 2 1 1 3 3
2 2 1 1 3 3
2 2 1 1 3 3
2 2 1 1 3 3
2 2 1 1 3 3
2222222 1111111111111111111 3333333
1 = 2560x1600
2 = 1200x1600
3 = 1200x1600 Visual studio is only on monitor 1 and 2, so your layout should approximate my layout.
No utilities like Ultramon installed. Not using anything from Catalyst Control center.
Also I have HKEY_CURRENT_USER\\Software\\Microsoft\\Avalon.Graphics REG_DWORD DisableHWAcceleration 0x00000001 (1)
Which means that Visual Studio is not using the 3D graphics drivers. Also the crash dumps indicate VAX in the callstack.
Slow brackets See WithVA.mp4 and WithoutVA.mp4 on FTP for reproduction. Notice how much faster the "aaaaa" at the end appear than the different brackets. Notice that without VA there is no slowdown.
The problem is not only when holding down the key. It's still noticeably slow when typing.
Another thing I noticed that probably is another bug: Disable VA ("Disable/Enable Visual Assist X" menu item) Focus on another application (Not visual studio) Go back into Visual Studio and Enable VA. Now all brackets and ; is fast, but bracket highlighting does not work any longer.
Parameter Info going bold I'm seeing the same thing as you describe. I would expect the bolded parameter to change as I move left/right through the parameters in the code.
Performance I'm talking about the startup time and solution load time. This is as you say a one time cost, but rather large a cost increasing the startup time 400% and the solution load time 460%.
Auto list suggestions If it works as you say your option "Include suggestions in listboxes" is incorrectly named. It should be something with the meaning of "Automatically bring up suggestion listboxes while typing".
What I want is that no listboxes ever should come up, unless, and only if I press Ctrl+Space. Still I would like to take advantage of the suggestions. Maybe a new keyboard shortcut for bringing up suggestions if it's not practical to include them in Ctrl+space?
C++0x features Another thing I noticed is that VA does not recognize functions with the new C++0x function syntax. While I'm not expecting you to be able to provide the correct types for completion it would be nice if the functions are recognized as functions and highlighted as functions.
auto Mul(float x, int y) -> decltype(x*y)
{
return x*y;
}
int _tmain(int argc, _TCHAR* argv[])
{
auto TestVal = Mul(2.0, 3);
return 0;
}
|
Cutting Edge Project Management http://www.hansoft.se |
|
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Feb 03 2010 : 8:17:20 PM
|
Crashes Sean has been emailing you about this, via:
case=39118
and it looks like he is making some progress, thank you for your help with this.
Slow brackets I seem to be getting mixed results in my testing here, I need to keep on looking at this.
Parameter Info going bold Using the same test code as earlier, as I press the left arrow key to move the caret on the line of code, this is what happens to the tooltip:
and:
this is what is supposed to be happening. Is this what happens for you?
Performance I have put in a bug report for this:
case=39179
At least it is a one time problem.
Auto list suggestions The naming of this, it also has to interact with:
VA Options -> Advanced -> Suggestions -> Include VA Snippets in listboxes IDE tools menu -> Options -> Text Editor -> C# -> IntelliSense -> Show completion list after a character is typed
so on its own this does not stop or produce all listboxes.
C++0x features Thank you for the clear example. This compiles just fine, but it is interesting that for me VS2010 Beta 2 the IDE is underlining the function name. We are working on adding support for the new features:
case=20625 |
zen is the art of being at one with the two'ness |
|
|
Erik Olofsson
Tomato Guru
111 Posts |
Posted - Feb 05 2010 : 12:11:12 PM
|
Parameter Info going bold It works correctly if you have "Statement completion: Parameter information" enabled in the C/C++ Text Editor options.
If you disable this the bolding does not follow the cursor when pressing Ctrl+Shift+Space.
|
Cutting Edge Project Management http://www.hansoft.se |
|
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Feb 05 2010 : 8:14:28 PM
|
Thank you for the detective work. I do not recognise this problem, but it has been reported once before:
case=4399
If you don't find turning this IDE option on to disruptive then turning it on should fix the problem for now. |
zen is the art of being at one with the two'ness |
|
|
Erik Olofsson
Tomato Guru
111 Posts |
Posted - Feb 07 2010 : 06:05:20 AM
|
Parameter Info going bold OK, living with the bug is definitely the lesser of the two evils :)
RValue references Another C++0x feature not working with syntax highlighting: typedef int && CTestRRef;
Cursor gets stuck I have not been able to reproduce this by copying the code where this happens. Basically I'm editing a token and pressing the down button immediately. What happens then is that the cursor stops blinking and is stuck at the location previous to pressing the down key.
After this I can get the cursor to update again by moving it again, or wait 10 seconds at which time the file will be re-parsed and the cursor shown again.
If I move immediately the cursor gets stuck in the on position.
If I wait until the cursor blinks off the cursor get stuck in the off position.
If I wait until the cursor has blinked to off then on before moving the problem does not appear.
Edit: I have been able to reproduce the problem by copy pasting the problem code many times. In my project I don't have nearly as much code in the file to see this problem, but you can reproduce it with the TestVA.zip solution on the FTP.
Just go to the end of TestVA.cpp and delete one character in the CTestArrayV and then quickly press the down key. It seems that the first time you do this the problem does not appear, so do it many times and let VA reparse the file between each time. The reparsing seems to make the operation slower and slower each time. Alt-tabbing might also have something to do with it, I'm not sure.
Be sure to undo the edit each time, as it seems editing an unknown token does not exhibit the problem.
It is also possible that this only happens over remote desktop. |
Cutting Edge Project Management http://www.hansoft.se |
Edited by - Erik Olofsson on Feb 07 2010 06:28:00 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Feb 08 2010 : 11:54:42 AM
|
The cursor getting stuck, how easily can you reproduce this?
I am running VS2010 Beta 2 over remote desktop, and I have opened your test solution, thank you for this. Working on line 11,137 and on the second reference to CTestArrayCV on this line, I have deleted each character in turn, and then used undo to replace it.
So 12 tests of this problem so far. Are you seeing serious CPU spikes on a single core, and the IDE getting very sluggish after each edit? On a virtual machine this test makes the IDE so slow and unresponsive the test is painful to run.
I am wondering if this IDE slow down is a possible factor. Would you expect the problem to have shown up within 12 tests or not? |
zen is the art of being at one with the two'ness |
|
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Feb 08 2010 : 2:03:51 PM
|
I am seeing the same problem with the RValue reference, than you for the simple code sample. I have put a note on:
case=20625
about this. This is one of the new language features we are aware of, and need to add support for. |
zen is the art of being at one with the two'ness |
|
|
Erik Olofsson
Tomato Guru
111 Posts |
Posted - Feb 08 2010 : 5:33:02 PM
|
quote: Originally posted by feline
The cursor getting stuck, how easily can you reproduce this?
I am running VS2010 Beta 2 over remote desktop, and I have opened your test solution, thank you for this. Working on line 11,137 and on the second reference to CTestArrayCV on this line, I have deleted each character in turn, and then used undo to replace it.
So 12 tests of this problem so far. Are you seeing serious CPU spikes on a single core, and the IDE getting very sluggish after each edit? On a virtual machine this test makes the IDE so slow and unresponsive the test is painful to run.
I am wondering if this IDE slow down is a possible factor. Would you expect the problem to have shown up within 12 tests or not?
Yes it definitely has something to do with the slowdown. I'm seeing one core going up 100% for about 3 seconds in this test. Sometimes two cores go up to 100%. I would expect you to need a two or possible three core machine to reproduce the behavior.
12 tests should be enough. When I tried again now it happened from the second try and onward. I will check if it happens without remote desktop tomorrow and also record a movie if that helps.
Edit: The same thing happens without Remote Desktop. |
Cutting Edge Project Management http://www.hansoft.se |
Edited by - Erik Olofsson on Feb 09 2010 09:44:55 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19024 Posts |
Posted - Mar 04 2010 : 09:46:22 AM
|
Many apologies for the delay in getting back to you about this. Most of these problems don't have easy answers. Some good news though, we have made some changes in VA 1814 to try and fix the problems with slow typing of some characters.
Hopefully this new build will help with some of the problems you are seeing:
http://www.wholetomato.com/downloads/default.asp
|
zen is the art of being at one with the two'ness |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Mar 08 2010 : 04:20:22 AM
|
All parameters in bold is case=38810. case=38680 and case=38810 are fixed in build 1814
|
Whole Tomato Software, Inc. |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Apr 10 2010 : 9:34:03 PM
|
VA performance in Visual Studio 2010 is improved in build 1819 (case=40377) |
Whole Tomato Software, Inc. |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Apr 23 2010 : 03:17:41 AM
|
The "cannot set allocations" problem is case=39412, and is fixed in build 1822 |
Whole Tomato Software, Inc. |
|
|
|
Topic |
|