Author Topic: Tagging madness (C++)!  (Read 12445 times)

jaymmartin

  • Community Member
  • Posts: 57
  • Hero Points: 8
Tagging madness (C++)!
« on: October 27, 2011, 10:20:38 PM »
I am still having tagging performance problems as of 16.0.3/hotfix2.  My project is small and can be retagged in under 2 seconds, yet slickedit will "go away" for seconds at a time doing what I believe is tagging related processing.  An example of this behavior is that the editor slows and tagging fails to show a symbol in preview, I then go to tagging (tools/tag files), the tagging dialog hangs for bit and when it appears the desired symbol definitions also appear in the preview window (without even having to retag).   I usually retag anyway, and the editor seems to behave for a while again. 

at5dapa1

  • Senior Community Member
  • Posts: 284
  • Hero Points: 24
Re: Tagging madness (C++)!
« Reply #1 on: November 03, 2011, 06:59:05 PM »
@jaymmartin: I just hit a part of your described behavior: clicking on different functions (members of the same class) didn't show anything on the preview window. When I was pressing on the "Manage tag files" button from the Preview window the "Context Tagging - Tag Files" popped-up but in the same time the Preview window was populated too! Without retagging anything! So it was enough only to press that "Manage tag files" button to make the Preview window show the definition/declaration.

I played around and solved the Preview issue by increasing the "Preview window timeout (ms)" to 2000 (from Options -> Editing -> Context Tagging -> Tagging Tool Window). Hope it helps.

jaymmartin

  • Community Member
  • Posts: 57
  • Hero Points: 8
Re: Tagging madness (C++)!
« Reply #2 on: November 03, 2011, 09:00:03 PM »
I played around and solved the Preview issue by increasing the "Preview window timeout (ms)" to 2000 (from Options -> Editing -> Context Tagging -> Tagging Tool Window). Hope it helps.

Doesn't fix it for me.  But sometimes I open a file and can get it to preview correctly and sometimes it won't preview (can leave cursor on a symbol forever). Its random with the same file and symbol. I bound "gui-make-tags" to a key so I can force it to work.  Though sometimes I think I actually have to rebuild the tag file again to finally see the symbol definition in preview.

ExtremeXS

  • Senior Community Member
  • Posts: 108
  • Hero Points: 6
Re: Tagging madness (C++)!
« Reply #3 on: November 13, 2011, 04:39:35 PM »
Ok so I've been using 16.0.3 which still has this stalling issue the only setting I have changed from stock context tagging settings (that's 16.0.3 stock settings too, not imported from an earlier version), as suggested is:

Update workspace tag file on activate = False

This seems to solve the immediate issue of tabbing back to the editor and it locking up for a period of time whilst nothing seems to be happenening.  But I still get other random stalls here and there, this just seems to resolve the main one.

So since 16.0.2+ this option is having unintended side effects, it was working fine on previous V16 build, and it seems to hint that there are some other issues relating.

It's great having some configs that help resolve the issue, but that does not mean the issue does not need addressing, I should be able to have this switch on without the editor locking up, esp as this worked fine.

Cheers

Tree

  • Community Member
  • Posts: 79
  • Hero Points: 2
Re: Tagging madness (C++)!
« Reply #4 on: January 10, 2012, 09:28:45 PM »
Is there any update on this performance issue?

sleach

  • Community Member
  • Posts: 7
  • Hero Points: 0
Re: Tagging madness (C++)!
« Reply #5 on: January 24, 2012, 10:05:18 PM »
I believe I've isolated the issue for me. Everything runs fine until I switch to perforce and sync. Then I start getting stalls while tagging and sooner or later SE goes away completely and I have to kill it. The problem occurs even if I close SE, sync and restart. The only work around I've found is to close SE. Sync. Delete the tag file. Start SE. Find a global symbol. ctrl+/ and leave SE with focus until it finishes rebuilding the tags file. Then everything runs great. It's a little bit of a pain, but at least I can avoid the issue.

Shaun

Tree

  • Community Member
  • Posts: 79
  • Hero Points: 2
Re: Tagging madness (C++)!
« Reply #6 on: January 24, 2012, 10:14:32 PM »
Interesting. I'm also using Perforce, and what you describe sounds familiar. I sync several times a day, though, so your process won't work for me.

Dennis

  • Senior Community Member
  • Posts: 3961
  • Hero Points: 517
Re: Tagging madness (C++)!
« Reply #7 on: January 24, 2012, 11:24:16 PM »
Use the built-in profiler to isolate where slickedit is spending the time when things freeze up.  You can save the profiling results to a file and post them here, or send them in to SlickEdit support.

Macro > Slick-C Profiler > ...

Tree

  • Community Member
  • Posts: 79
  • Hero Points: 2
Re: Tagging madness (C++)!
« Reply #8 on: January 25, 2012, 02:19:19 PM »
I attempted this profiling. SlickEdit 16.0.3 was unresponsive for ~10 minutes, and then when I selected "Finish Profiling" it produced a "Divide by zero" stack trace:

p_object: OI_EDITOR     p_name:
   Divide by zero
slickc.ex 23713 slickc:profiler_get_caption(,0)    p_window_id: 61   p_object: OI_EDITOR   p_name:
slickc.ex 25357 profile(view)   p_window_id: 49

(this was transcribed, not copy-pasted)

Dennis

  • Senior Community Member
  • Posts: 3961
  • Hero Points: 517
Re: Tagging madness (C++)!
« Reply #9 on: January 25, 2012, 03:19:13 PM »
The next revision of the 16.0.3 hot fix will have a fix for the divide-by-zero error.  Sorry for the inconvenience, it sounds like you had isolated a good test case.

sleach

  • Community Member
  • Posts: 7
  • Hero Points: 0
Re: Tagging madness (C++)!
« Reply #10 on: January 25, 2012, 05:38:09 PM »
This was a several minute stall after syncing only a handful of files.

Speaking of support, I've tried submitting a couple times(yes I have maintenance & support) and it just went into the ether. I never got an email that support received it.

Thanks.

Shaun

Dennis

  • Senior Community Member
  • Posts: 3961
  • Hero Points: 517
Re: Tagging madness (C++)!
« Reply #11 on: January 25, 2012, 05:55:04 PM »
The profiling results show that it spent 189 seconds getting references to some symbol that appeared in about 1200 different files and had over 4000 candidate references.

Try setting this option to false.  Tools > Options > Editing > Context Tagging > Update references and call the on single click.  It could be that the focus change from switching away from the editor and back caused references to be updated on account of having this option enabled.  We should just remove this option, it is too easy for someone to shoot themselves in the foot.

SlickEdit Support

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 384
  • Hero Points: 29
Re: Tagging madness (C++)!
« Reply #12 on: January 25, 2012, 05:58:12 PM »
@sleach  -- You can expect a PM for more info shortly. There doesn't appear to be any visible problems on Case submission from our end at this time but we should be able to get this figured out.
Best,
SlickEdit Support

sleach

  • Community Member
  • Posts: 7
  • Hero Points: 0
Re: Tagging madness (C++)!
« Reply #13 on: January 25, 2012, 06:03:13 PM »
@Dennis -- Sadly that option is already set to false.  :(

@Support -- Thanks


Dennis

  • Senior Community Member
  • Posts: 3961
  • Hero Points: 517
Re: Tagging madness (C++)!
« Reply #14 on: January 25, 2012, 07:02:04 PM »
@sleach -- In the stall.tsv profiling results, did you invoke Go to Reference yourself then?