Re: Memory...

Hi Sylvain,

> I'll try to explain my problem :
> I've got a mesh in 3D with about 200 000 samples and 1 000 000 tetras.
> . . .
>
>   for (int i=0; i<delaun.Edges.length; i++) {
>     int[] trii = delaun.Tri[i];
>     int[] edgesi = delaun.Edges[i];
>     for (int j=0; j<4; j++) {
>       if (gsp[edgesi[j]] == null) {
>         . . .
>         gsp[edgesi[j]] = new Gridded3DSet(xyz, pts, 2);
>       }
>     }
>   }
> . . .

Since delaun.Edges.length = number of tetrahedra, this will
construct 1000000 * 4 = 4000000 Gridded3DSets. It is quite
plausible that this would require 755 MB of memory (Java
Objects have a fair amount of invisible memory overhead).
Further, if you put this collection of 4000000 Gridded3DSets
into a UnionSet and link them to a DisplayImpl, it will
require lots of memory and time.

In fact, just the Samples, Tri, Vertices, Walk and Edges
arrays for your DelaunayCustom should consume about 68 MB
of memory, according to my estimate.

One thing to consider is that the user will not be able
to see 4000000 line segments, even if you could get them
all displayed on the screen. You need to devise some
strategy for selecting certain segments from you topology
(e.g., select samples lying in certain small 3-D spatial
regions, and only the segments among those samples). Then
display this smaller set, and allow the user to interactively
change the selection.

Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html


  • 2001 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: