Revisiting this thread: XREFSTATE and other registry poking
I recently watched "acad.exe" (Civil 3D 2017) using Process Monitor and it recorded ±40,000 events in a given 100 second time slice. The vast majority being registry queries for the same thing, over and over and over and over..... (as discussed in the thread above). So C3D 2017 is averaging 400 file and registry events per second, working out the CPU to the tune of about 1.4% - all while sitting completely idle.
I thought, well maybe all CAD programs are this "chatty". I tested an unnamed competitive CAD program and it recorded exactly 45 events in Process Monitor over a 100 second span.
IDK, maybe in the grand scheme of things, all this chatter is negligible... ? What do you think?
Why should it matter if the competing program is "dynamic"? So C3D is so dynamic that even while sitting completely idle it has a need to eat up resources constantly? What is it doing? Waiting for an opportunity to jump in and be dynamic if need be?
BTW we've noticed the same constant pinging of resources, constantly searching over and over for resources and paths that have already been found with C3D.
Try running Process Monitor with another dynamic program, Bentley SS4 (OpenRoads) and you won't see the same constant background activity. Which would probably explain the better overall performance with Bentley products.
Kind of hard to tell exactly which keys are being hit, looks like one is maybe some ObjectDBX related data. Are there any XREFs or data refs attached? Is this a sheet set member? A blank drawing? Hard to analyze without good information to work with...
Apologies @dgorsman - IDK why I didn't make the window wider.
It's generally hitting the same half dozen or so keys in the registry, over and over, every ~0.26 seconds. (See attached image. I attached it so it wouldn't shrink when posted inline.) Every so often, it hits some other things, but the constant hammering of these Reg Keys (that do not exist) is a waste of resources. To what degree? Still not sure.
As explained in this post, I once (several machines ago...) sat down and *created* these missing registry entries and guess what? The constant poking stopped. I have not had the time to do that on this machine, nor test that "solution" for the multiple versions I have running either.
Thanks for your interest.
EDIT: Yes, a fresh fire up of C3D, with the default template loaded, although it does the same with a new, empty, no template drawing loaded too.
Out of curiosity is this an acad thing or a c3d thing? What if you start C3D as Autocad or Map? Same?
John Mayo
AutoCAD 2016 (not C3D as AutoCAD, this is an install of plain AutoCAD).
Same type of poking, a little different.
Note the times in yellow, a series of pokes lasting 0.0006 seconds.
Then nothing for 0.81 seconds
Then it repeats (in green), the same pokes lasting 0.0006 seconds again.
This is pretty much the loop that occurs after opening the application, with no drawing open.
CPU usage is a lot less for plain AutoCAD at idle for some reason (~0.25%)
Make a simple support request - ask what that key is for, what are the values allowed, how does it impact performance.
Make a simple support request - ask what that key is for, what are the values allowed, how does it impact performance.
Ugh...exactly.
Funny the support response used the word "defect" which it certainly seems to be and since it hasn't been addressed in 2 1/2 years and a couple releases I think we can safely assume that it will not be addressed.
And it's not just a couple reg hits. Run procmon and filter down to acad.exe and you'll be shocked at the amount of resources being drained continually all while you are doing absolutely nothing. Sitting with an empty drawing, no xref's, no data shortcuts, etc.
And again, no it's not because it's dynamic. Bentley SS4 (InRoads) does NOT do this.
I noticed the same thing a few years back myself.
While I didn't go into creating registry keys, I noticed that civil 3d was looking through all the support paths for .mnl files to go with each loaded .cuix file.
For example, raster design menu file is named AecCo.cuix. Once it is loaded autocad will hunt through the support paths over and over looking through for a AecCo.mnl file to go with it.
I ended up create empty text documents and giving them the same name of any cuix files with the extension .mnl. Once these files wer in place, autocad found them and stopped looking any further.
.mnl files are lisp files that get loaded along with the corresponding cuix files.
It would be interesting to see the performance comparison if all the searched for files and registry keys were created or corrected.
I have also thought that if a file or registry key is not found on the first try Autocad would record that and not go looking any further that session.
Also, once a particular key or file was found, it would be stored so that the first location checked would be the place the file was last found instead of defaulting to searching from the top of the list of support paths registry keys.
There's a downside to caching "found at" locations, whether in the file or registry. There are times when these locations can change; for example we have some client tools that modify the search paths when loaded. Perhaps a more subtle approach would be better - check the default location first, then the "found at" cache, then proceed with an exhaustive search.
Based on your post maybe it would be a good addition to the core program to have a switch in the CUIx to tell it to look or not look for the associated MNL file rather than doing so by default.
Its a defect only in the term of how support sends the issue off to the development team. All issues were logged that way regardless if its a request for information, or if its a defect in the original specifications or a problem with the application.
Three years later. Has this been fixed? No.
I'm still amazed at this. That "XREFSTATE" key has got to be sore from all of the poking.
AutoCAD 2022 still does it, this ia AFTER I created numerous keys to try to shut it up ...
I told Autodesk to open a ticket, if it isn't fixed by renewal time I'm going to BricsCAD. I have had enough of useless new features and bugs that never get fixed. Hello file on a network share.
Can't find what you're looking for? Ask the community or share your knowledge.