Author Topic: SlickEdit Performance tuning?  (Read 5745 times)

Wanderer

  • Senior Community Member
  • Posts: 558
  • Hero Points: 23
SlickEdit Performance tuning?
« on: January 26, 2007, 03:16:19 pm »
Hello,

SlickEdit 11.0.2 with hotfixes, WinXP Pro sp2.

I don't know what I have changed recently, but SlickEdit's performance is terrible.  For example, at the top of a C++ function I type
  int nItem =
and wait 10 - 30 seconds while SlickEdit cogitates on what might follow the '='.
Similarly,
  OutputDebugString(
causes a similar delay.

Sometimes when switching to SlickEdit from another application it takes half a minute before SlickEdit will respond.

Any suggestions for improving performance?  What features have the biggest impact?
My current project has 35 .c, .cpp, and .h files in my local work dir, and ~550 .h  files included from the teamline (to provide function prototypes and datatypes).

Thanks for any suggestions...

JakeMontgomery

  • Community Member
  • Posts: 79
  • Hero Points: 8
Re: SlickEdit Performance tuning?
« Reply #1 on: January 27, 2007, 05:24:46 pm »
I second that.  I also get these kind of long delays after I type certain words.  My project is C# and really tiny.  I assume this is something to do with tagging, but it would be nice if all that stuff were threaded so it did not stop me typing.

Dennis

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 2256
  • Hero Points: 283
Re: SlickEdit Performance tuning?
« Reply #2 on: January 30, 2007, 12:09:19 am »
If you have a large (or extremely difficult) code base and are experiencing delays like this, I recommend that you turn off the following items on Tools > Options > File Extension Setup, Tagging tab.

   [ ]  Auto-list compatible values
   [ ]  Auto-list compatible parameters

By "extremely difficult", I mean code that makes heavy use of templates, especially template meta-programming, or makes heavy use of overloading and/or namespace/package scoping.  These two "auto-list compatible ..." features are trying to determine for each variable in the immediate scope whether or not it is (at least loosely) assignment compatible in the current context.  The harder the type compatibility is to calculate, the longer it takes.  Who would have thunk it?

Turning off the "auto" versions of these features does not take away the features, you can still invoke them on demand by pressing Alt+Comma (function-argument-help), which will work in both cases mentioned.

Another good performance boost is to increase the size of your tag file cache (Tools > Options > General, Virtual Memory tab).  Try to make it large enough (within reason) so that we can get your entire workspace tag file and extension specific tag files into memory instead of having to page in and out disk blocks.

For C#, there is a special consideration.  If you turn off "Show Comments", you might see some performance improvements, since it will allows us to avoid loading the large XML files that Microsoft packages their .NET library documentation in.

The good news is that we have made some general performance improvements to the tagging engine for 12.0.  The bad news, is that no matter what we do, Boost and the STL will always make it convoluted and difficult to get from point A to point B due to the heavy use of typedefs and template meta-programming.

lambertia

  • Senior Community Member
  • Posts: 382
  • Hero Points: 14
  • I have nothing sufficiently witty to say.
Re: SlickEdit Performance tuning?
« Reply #3 on: January 30, 2007, 01:50:06 am »

The good news is that we have made some general performance improvements to the tagging engine for 12.0.  The bad news, is that no matter what we do, Boost and the STL will always make it convoluted and difficult to get from point A to point B due to the heavy use of typedefs and template meta-programming.


Allthough I can't give imperical evidence, I would certainly concur that the tagging performance is vastly improved. I can't recall having the horrible tag slowdown for some time, though I can't put this down to 12.0 alone as I have increased my cache size from the default.

Cheers,

hs2

  • Senior Community Member
  • Posts: 2727
  • Hero Points: 281
Re: SlickEdit Performance tuning?
« Reply #4 on: January 30, 2007, 07:52:47 am »
Very interesting background information Dennis (HP++).
This will definitely help to 'adjust' the tagging system instead of messing around with 'somehow related' parameters.
@Lisa: I think it's a good idea to add these hints to the documentation if not already included.

HS2

Lisa

  • Senior Community Member
  • Posts: 238
  • Hero Points: 23
  • User-friendly geek-speak translator extraordinaire
Re: SlickEdit Performance tuning?
« Reply #5 on: January 30, 2007, 03:18:44 pm »
@Lisa: I think it's a good idea to add these hints to the documentation if not already included.

HS2

Yes, thanks to the forums, we've got that already on the TODO list!

-Lisa

lambertia

  • Senior Community Member
  • Posts: 382
  • Hero Points: 14
  • I have nothing sufficiently witty to say.
Re: SlickEdit Performance tuning?
« Reply #6 on: February 01, 2007, 01:32:54 am »

The good news is that we have made some general performance improvements to the tagging engine for 12.0.  The bad news, is that no matter what we do, Boost and the STL will always make it convoluted and difficult to get from point A to point B due to the heavy use of typedefs and template meta-programming.


Allthough I can't give imperical evidence, I would certainly concur that the tagging performance is vastly improved. I can't recall having the horrible tag slowdown for some time, though I can't put this down to 12.0 alone as I have increased my cache size from the default.

Cheers,

Hi.

Bad news for 12.0, I'm getting the slow down again :(. I feel for you this must be a hardy.

Cheers,

Wanderer

  • Senior Community Member
  • Posts: 558
  • Hero Points: 23
Re: SlickEdit Performance tuning?
« Reply #7 on: February 01, 2007, 04:26:05 am »
If you have a large (or extremely difficult) code base and are experiencing delays like this, I recommend that you turn off the following items on Tools > Options > File Extension Setup, Tagging tab.

   [ ]  Auto-list compatible values
   [ ]  Auto-list compatible parameters

By "extremely difficult", I mean code that makes heavy use of templates, especially template meta-programming, or makes heavy use of overloading and/or namespace/package scoping. 

Thanks for the suggestions.  Unfortunately, I don't consider my current project large or difficult.  As I mentioned in my original post, it is mostly .h files, some .c files, and a few .cpp files.  No use of templates, and very few classes; ~600 files total.  (I have a handful of .h, .c, and .cpp files in my sandbox; I include the other .h files from the teamline in this project to get datatypes and fn protos.)

I made the changes you suggested, and some things have improved.  One very noticeable problem still occurs:
  for (int<long pause here....>
There are also delays when SlickEdit regains focus, although not every time.

I very much appreciate the time you guys spend responding to this group.

hs2

  • Senior Community Member
  • Posts: 2727
  • Hero Points: 281
Re: SlickEdit Performance tuning?
« Reply #8 on: February 01, 2007, 07:16:55 am »
I think the focus related delays can be minimized by adjusting 'Tools->Options->Tagging Options'.
Seems that Slick also starts retagging when it looses the focus (add. idle trigger), which makes sense.

HS2