Re: Iterative visiting of all source files

RJD <[email protected]> Thu, 9 Apr 2015 13:37:57 +0000 (UTC)
Newsgroups gmane.emacs.semantic
Message-ID <[email protected]>
Eric Ludlam <eric <at> siege-engine.com> writes:

> I spend many days profiling and tweaking this process.  I'm not sure 
> what is left to tweak out of that code.  Without the typecache, all 
> completions are quite slow.
> 
> Enjoy!
> Eric
> 
> 

So when I run said function I get something like this:

]#<semanticdb-typecache someLocation/to/someFile.cpp>
   ] Name: "someLocation/to/someFile.cpp"
   ] Class: #'semanticdb-typecache
   ] filestream : nil
   ] includestream #<TAG LIST: 717 entries>
   ] stream : nil
   ] dependants #<list o' stuff: 1 entries>

I guess I am just in conflict with how semantic deals with things. I
strongly believe the WHOLE dbcache should be loaded into memory right at the
beginning. I do not know if this has anything to do with me not using EDE -
but I would like a function which I would run in my own adhoc hooks to load
the relevant dbcaches into memory.

Here are the semantic cache files (take for example a big project like
/some/place/to/trunk_source/ which has further subsystem directories like
SubDir0 etc)

 1092256 Apr  1 19:35 !some!location!SubDir0!semantic.cache
 1998193 Apr  9 14:20 !some!location!SubDir1!semantic.cache
   57776 Feb 13 11:54 !some!location!SubDir2!Sender!semantic.cache
  743628 Mar 20 16:14 !some!location!SubDir3!Shared!semantic.cache
  861203 Apr  9 14:23 !some!location!SubDir4!semantic.cache
  118682 Feb 17 18:24 !some!location!SubDir5!semantic.cache
  150808 Mar 11 16:39 !some!location!SubDir6!semantic.cache
 1057422 Mar 20 16:14 !some!location!SubDir7!semantic.cache
   51184 Mar 11 16:05 !some!location!SubDir8!SubSubDir0!semantic.cache
   51126 Feb 16 17:40 !some!location!SubDir9!SubSubDir1!semantic.cache
   24280 Feb 16 17:40 !some!location!SubDirA!SubSubDir2!semantic.cache
  158025 Mar 11 17:12 !some!location!SubDirB!semantic.cache
  727442 Apr  1 17:34 !some!location!SubDirC!semantic.cache
  336992 Apr  9 14:14 !some!location!SubDirD!semantic.cache

I think this is the way intellisense works - you load a project and in the
background it just loads all the intellisense stuff. If there was a function
in semantic that I could use to tell CEDET to loads the specified dbs into
memory ( all at once - straight away - on a hook) then it surely it would be
faster? It would be even faster if Emacs managed to use all the cores on my
machine but it only ever uses 1.

---

As I type all of this I read previous posts where I have basically said the
same thing and you have told me that semantic does store the DB in memory. I
cannot understand what takes so long then. How does Microsoft manage it so
quickly?

How would I profile, Eric? I need to be careful with proprietary code.

Thanks.


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF