raster images memory load
Hi all,I work with raster images. (uncompressed TIF areal photographs). BricsCad perform really strong, even after I loaded all images I need for my project (438 images, all sized 1.37 MB a piece... It drives my memory use up to a load of 860000 kB). I never need all images loaded at once so I have grouped them in about 10 layers. I was hoping that swiching those layers that hold the images on/off would decrease the system load, but it does not. Once loaded, the images remain stored in the memory. The best solution I have came up is saving the DWG every time with all image-containing layers OFF before I move to a new area in my drawing. Then I close Bricscad. restart it and open the DWG again. I now only turn the the layer ON that contains the areal photographs I need to work with now.Even so I still prefer it over AutoCAD that, unlike BricsCAD, regular has to fall back on the original image files stored on the hard disk, which hampers zooming and panning.But, if some-one has a suggestion to do this more clever, I welcome responds.Probably Bricscad cannot change all performance issues since support for raster images is under licence of Hitachi.Kind regard, Gerrit
Comments
-
Does it help to UNLOAD the images you aren't using? If so, you could probably use a lisp routine to unload and reload them by using the layer name.
0 -
How about saving the "groups" of images as XREF's?Then you could use the XrefManager (XRM) to load and unload the individual XREFs as they are needed. . .So. .it would be something like this1. Create a drawing with (say, for example) 20 images on it and call it ImageSet12. Continue creating drawings with the "image sets" and call them ImageSet2, ImageSet3, etc3. Open a BLANK drawing and issue the XRM command to bring up the XRef manager and put the "ImageSet#" drawings onto the Blank.4. Use XRM to "Load" and "UNLoad" the XREF's.Just a thought. . .but my heads kinda crooked and I do tend to think on the "strange side" of things. . .Adios!
0 -
Thanks for the input! I have very ltitle experience with LISP, but I believe that it would work indeed. There is one problem that prevented me from writing something simulair in VBA: I noticed that an unloaded image can no longer be reloaded once the drawing is saved with that image in an unloaded 'state'. The image is 'Not Found' (bug?). So it would probably require me to 'hard-code' the paths and filenames of the images in the LOAD routine. I never came to that. I finished my project and as I wrote in my previous post: BricsCad performed very well. Using Xrefs is an is another nice suggestion. It crossed my mind at the time and should not be difficult or time-consuming to set it up. I'll probably give it a try the next time I have to do something simulair.Thanks again, Gerrit
0 -
Something to report here.I creates an empty drawing and attached three drawings containing multiple bitmaps with xrm. I can indeed unload and reload them, but unloading does not decrease the memory load on my win xp sp2 system, while reloading increases it as if the bitmaps are loaded for the first time. This way, the sequence unload/reload rapidly increases memory consumption to levels that are no longer stable.Bricscad, I think this is (sometime) worth looking at. I tested on 6.1.0005.Kind regards, Gerrit
0 -
Gerrit,I've done "loaded" and "reloaded" DWG's with Bricscad but have never tried to do it with the images files.Something I'll have to try too. (Maybe we can get the guys at BricsCAD to look at it too since when a drawing is UNloaded it SHOULD be removed from the memory of the active DWG file. . notice I say "should".)I have done it repeatedly with very LARGE DWG files and, to be honest, have not paid attention as to whether or not it DOES actively release the memory. Guess I'll have to pay attention next time!Take care. .and best of luck. . Mike!
0 -
Hi Mike,My findings do not refer to DWG's. I believe this to be handled seperately inside the BricsCAD's code, so before we draw conclusions we should test it. I use the free tool 'System Explorer' from Sysinternals for this. See http://www.sysinternals.com/Utilities/ProcessExplorer.html. It lists all running processes and allows you to see a graph of CPU consuption and memory usage of any seperate process. I used three DWG's for this prepared by collegues in AutoCAD and I reach sigificant memory consumption when loading these drawings. When I reload the one that I attached last memory comsumption decreases greatly. But it does not reach the level of memory consumption that I found before I attached it. There are many valid reasons that would explain such a behaviour, so we cannot draw conclusions at this stage. For instance these drawings all had fonts substituted while attaching. Unfortunately reloading it again does show an increase of the the memory consumption beyond the previously reached level. And this happens every time I unload - reload these DWG's with the Xref manager....This testing is all very exploratory! It happens here on my machine in our office: 6.1.0006 version of BricsCAD Pro on an Hungarian Windows 2000 (5.0.2195 SP4). GerritP.S. I did not find an item in the Knowledge Base about this.
0 -
Sorry: Third paragraph should read:When I UNLOAD the one that I attached ...Gerrit
0 -
Gerrit,Did some experimenting of my own and, as you stated, UNLOADING an XRef does reduce the size of the drawing, but not back to its original level. (Even with DWGs as the XRefs)I was able to do some experiementing with the fonts and embedding and I believe that your on the right track. That seems to be what is "held" in the system memory and does not release fully when BricsCAD is told to UNLOAD and/or RELOAD. (I like the sysinternals utils, but I use WinBar since it has a ton of other little utils built into it too. . .http://www.winbar.nl)Hopefully the guys at BricsCAD are watching this thread as it develops and they'll take a look at how BricsCADs memory controllers are loading and unloading drawings and files.Take care Gerrit.Mike!
0