.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[AcCoreConsole] Disappointed with Performance

6 REPLIES 6
Reply
Message 1 of 7
|flyte|
1067 Views, 6 Replies

[AcCoreConsole] Disappointed with Performance

When doing batch processing with the AcCoreConsole, we have to launch the AcCoreConsole.exe everytime we want to process a drawing. I find that this seems slow as the overhead to spin up the process and then perform a netload is slow.

 

I'd rather spin up AcCoreConsole.exe once, do a netload once, and then pass it my scr which defines what to do, which would include opening the next drawing, and close.

 

Can we re-use the AcCoreConsole process to handle more than one drawing? Even when I parallize my process (but being sure to not launch too many threads [ideally I spin up threads to match my core count]), I don't find a huge time savings when using the old approach and spinning up acad.exe with the full GUI.

 

Where are the savings and benefits?!

6 REPLIES 6
Message 2 of 7
CADbloke
in reply to: |flyte|

possibly related - could be the cause of performance problems: http://forums.autodesk.com/t5/net/accoreconsole-exe-in-2015-doesn-t-do-system-console-writeline/m-p/...
- - - - - - -
working on all sorts of things including www.tvCAD.tv & www.CADreplace.com
Message 3 of 7
autodaug
in reply to: CADbloke

I made a little script which does a netload of a small assembly and then quits. Running AcCoreConsole.exe ten times with this script takes about 25 secs, so the time to start AcCoreConsole and do the netload is about 2.5 secs. I agree that that is a noticeable amount of time if you have to wait for it. (For the record, acad.exe takes about 6 secs to start up on this machine.)

 

You can use AcCoreConsole to handle multiple drawings, if they are loaded as "side" Databases by your app. But you can't change the current drawing in the AcCoreConsole editor. Of course, you're a lot more limited on what you can do with a side Database - your app has to do all modifications on the Database using the APIs and not the editor commands.

 

I think one way the time savings can occur is if you need to process a bunch of drawings and they can all be operated on in parallel. Say you have 20 dwgs, and you need to do some work on each one that takes 3 seconds on average (including the time to load the dwg). If you fire up 20 AcCoreConsoles at once, and if you have enough CPUs and memory, then theoretically the work could be done in 2.5 + 3 = 5.5 seconds. But if you did the work sequentially in AutoCAD, it would take 6 + 20 * 3 = 66 seconds. (I'm using 2.5 and 6 as the times to load AcCoreConsole and AutoCAD, respectively). That's a pretty huge savings, if your work flow can be done this way.

 

That said, it does seem like 2.5 seconds is a rather long time to simply start a process and load an assembly. The actual time required to create a Windows process or load a dll is typically much smaller than that, so there are probably other things going on in this case. The slow output display mentioned above may be part of it. I expect this issue will get more attention as AcCoreConsole becomes more widely used..

 

 

 

Message 4 of 7
CADbloke
in reply to: autodaug

My timings for similar operations are about the same, not good, eh?

 

Ironically, the Core Console in 2013 starts quickly and has Console output. See http://forums.autodesk.com/t5/net/accoreconsole-exe-in-2015-doesn-t-do-system-console-writeline/m-p/... for comparison screenshots

 

It is also broken in v2014

- - - - - - -
working on all sorts of things including www.tvCAD.tv & www.CADreplace.com
Message 5 of 7
|flyte|
in reply to: autodaug

I know it's been a while, but has anything improved with accoreconsole in ACAD 2016? Can we avoid having to spin up a new process for each DWG we want to process? I know we can execute multiple accoreconsole's but a single instance of ACAD 2012 opening and closing a number of DWGs out performs accoreconsole in parallel.

 

 

Message 6 of 7
ActivistInvestor
in reply to: |flyte|


@|flyte| wrote:

I know it's been a while, but has anything improved with accoreconsole in ACAD 2016? Can we avoid having to spin up a new process for each DWG we want to process? I know we can execute multiple accoreconsole's but a single instance of ACAD 2012 opening and closing a number of DWGs out performs accoreconsole in parallel.

 

 


Using a single instance of AutoCAD will result in gradual performance degradation as the number of files processed increases, because it cannot release all the memory used by each DWG file that it opens, even after the file is closed.  That's a well-known problem, and for processing a large number of files, requires that AutoCAD be shut down and restarted periodically, to release memory.

Message 7 of 7
|flyte|
in reply to: ActivistInvestor

I get your argument of the degradation of performance of a single instance of full ACAD 2012 over time processing multiple DWGs.. but accoreconsole still doesn't even come close 😕

 

I feel I need to scrap our bulk processing with accoreconsole and revert back to launching full UI and scr with commands to process multiple DWGs. 

 

Anyone else have a suggestion here?

 

AutoDesk - any thoughts? Surely I am not the only one facing this issue. Why can't we open/close a DWG within the console itself? 

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost