Code Red > .NET

Why so many dll's?

(1/2) > >>

Mark:
Maybe the wrong place to put this, but . . .

Of the two vertical adesk products I use: Civil 3D, Land Desktop, there are a total of  827 dlls and 315 arx files. The dlls and arx files are the makeup of the vertical products (I think). Wouldn't it be better, in terms of speed, to have all the added features included in the executable (acad.exe) instead of all the dll's and arx's files?

pmvliet:
Well the acad.exe for 2k2,2k4 and 2k5 are over 7MB in size as it is.

for 2k2, I have 106 arx's(18MB) and 132 dll's (26MB).
2k4 has 246 dll's (40MB) and 111 arx's (16MB)
2k5 has 292 dll's (56MB) and 128 arx's (23 MB)

These are rough counts as I have a few extra arx's but not many.

I would think it boils down to size. Do your counts for verticals include base AutoCad or is that just the vertical portion?
If we combined them into one executable, 70MB would be huge.
If we then had to add your vertical, it would get even larger.

I don't have photoshop on this computer(at work), but that program takes forever and a day to open on my dual xeon's(at home). And as it loads, it scripts a list of all the other "add-ins" that it is loading.

just my randon thought....

Pieter

Keith™:
The main reason for having multiple DLL files is for speed ... to improve the speed ... and to make the code portable ...

Take for example any one of the dll files and if you explore the dependencies, you would find that many of the dlls are called from one or the other, being dependent upon one another for specific tasks ... imagine if everytime you wanted to draw a single 2d widget, you had to load the render library or the internet connection library ... the bottom line is that AutoCAD would be painfully slow if it did load them all into memory at runtime ... Each of those modules can be loaded (and unloaded) by the managing process acad.exe) unless they are built as "persistent", meaning the calling process cannot unload the thread without terminating it's own process.

This means that if you never use WhoHas.arx, it will never be loaded, or if you never use render then those libraries will not be loaded, thus making the program more efficient, use less resources, and have a much higher performance factor.

Glenn R:
Plus, if Adesk found a bug in AcDbLine.arx, they can just fix that module and re-ship (you are on subscription aren't you? ;) )...a lot easier than repatching a x mb big file and re-shipping that.

Mark:

--- Quote ---The main reason for having multiple DLL files is for speed ... to improve the speed ...
--- End quote ---

Then why is it so slow?

everytime I do anything outside of the standard autocad commands it takes seconds to complete!! Sorry, no speed improvement there.  :?


--- Quote ---Plus, if Adesk found a bug in AcDbLine.arx, they can just fix that module and re-ship ...a lot easier than repatching a x mb big file and re-shipping that.
--- End quote ---

So adesk basically makes it easier for them to handle their bugs?

Navigation

[0] Message Index

[#] Next page

Go to full version