Salome HOME
ObjectPool and SMDS_Position
[modules/smesh.git] / src / SMDS / Notes
1
2 =============================== Hypothese de refonte de l'API de SMDS
3
4 n'utiliser que vtkUnstructuredGrid, ne pas avor d'objets SMDS_MeshElement mais seulement des index de vtkUnstructuredGrid.
5 2987 usages de SMDS_MeshNodes
6 810            SMDS_MeshElement
7 ...
8 ==> en dernier ressort, lourd
9 ================================================================================
10
11 Essai a API SMDS a peu pres constante
12 =====================================
13
14 SMDS_Mesh
15   static vector<SMDS_Mesh*> _meshList;     --> retrouver un SMDS_Mesh
16   vtkUnstructuredGrid*      myGrid;
17
18   vector<SMDS_MeshNode *>   myNodes;       --> meme index que dans le pointSet de myGrid
19   vector<SMDS_MeshCell *>   myCells;       --> index = ID client, pas le meme index que dans le cellTypes de myGrid (ID vtk)
20
21
22
23 SMDS_MeshElement
24   int myID;                                --> index dans la structure geree par SMDS_Mesh
25   int myMeshId;                            --> pour retrouver SMDS_Mesh* dans _meshList
26   int myShapeId;                           --> pour retrouver la subShape
27                                                          
28
29 SMDS_MeshNode: SMDS_MeshElement
30   SMDS_PositionPtr myPosition;             -->  A REVOIR : objet position dans la shape geom
31   ##vector<int> myInverseElements;         -->  SUPPRIME : pour retrouver les elements, vtkCellLinks
32
33
34 SMDS_MeshCell: SMDS_MeshElement            --> generique pour tous les elements (cells)
35   int myVtkID                              --> A SUPPRIMER
36
37 SMDS_MeshVolume: SMDS_MeshCell
38
39 SMDS_VolumeOfNodes: SMDS_MeshVolume        --> Garder temporairement, utilisation dans StdMesher et SMDS_VolumeTool
40   const SMDS_MeshNode **myNodes;           --> Couteux
41   int                 myNbNodes;           -->  ""
42
43 SMDS_VolumeVtkNodes: SMDS_MeshVolume       --> Utiliser systematiquement dans SMDS,
44                                            --> IMPLEMENTER.
45
46
47 SMDS_MeshElementIDFactory: SMDS_MeshNodeIDFactory
48   vector<int> myIDElements; // index = ID client, value = ID vtk  --> A SUPPRIMER, ne sert que dans SMDS_MeshElementIDFactory
49   vector<int> myVtkIndex;   // index = ID vtk, value = ID client  --> A REPORTER dans SMDS_Mesh
50
51
52
53
54 ========= TODO ============
55
56 enlever vtkId de SMDS_MeshCell, utiliser SMDS_MeshElementIDFactory.
57
58 ajouter ID dans SMDS_Mesh::createTriangle 
59 verifier ID dans SMDS_Mesh::Find*OrCreate
60
61 ===================================================
62 occupation memoire cube 100*100*100 sans affichage
63
64 Reference : V513 Debian Sarge 64 bits: --> 463 - 33 = 430 Mo
65 -------------------------------------
66 Total (incl. mmap):
67 system bytes     =   43757568
68 in use bytes     =   32909584 = 33M
69 max mmap regions =         41
70 max mmap bytes   =   16371712
71 ----
72 Total (incl. mmap):
73 system bytes     =  464670720
74 in use bytes     =  463105120 = 463M
75 max mmap regions =         47
76 max mmap bytes   =   28188672
77
78 Debian Sarge 64 bits, vtkUnstructuredGrid nodes et hexa, 4 janvier 2010 --> 512 - 41 = 471M
79 -----------------------------------
80
81 Total (incl. mmap):
82 system bytes     =   52133888
83 in use bytes     =   41340320 : 41M
84 max mmap regions =         72
85 max mmap bytes   =   24625152
86 ----
87 Total (incl. mmap):
88 system bytes     =  520560640
89 in use bytes     =  518735584 : 512M
90 max mmap regions =         88
91 max mmap bytes   =  198385664
92
93 idem avec pool SMDS_MeshNodes --> 483 -33 = 450M
94 -----------------------------
95 Total (incl. mmap):
96 system bytes     =   43696128
97 in use bytes     =   32915184 : 33M 
98 max mmap regions =         41
99 max mmap bytes   =   16371712
100 ----
101 Total (incl. mmap):
102 system bytes     =  484806656
103 in use bytes     =  482980992 : 483M
104 max mmap regions =         58
105 max mmap bytes   =  184557568
106
107 idem ci-dessus + pool SMDS_VolumeVtkNodes --> 475 -33 = 442M (git: add ObjectPool.hxx)
108 -----------------------------------------
109
110 Total (incl. mmap):
111 system bytes     =   43200512
112 in use bytes     =   32908576 : 33M
113 max mmap regions =         41
114 max mmap bytes   =   16371712
115 ----
116 Total (incl. mmap):
117 system bytes     =  478068736
118 in use bytes     =  475144400 : 475M
119 max mmap regions =         59
120 max mmap bytes   =  184692736
121
122 remplacement SMDS_PositionPtr: (boost::shared_ptr<SMDS_Position> --> SMDS_Position*) --> 436 - 35 = 401M (git SMDS_Position)
123 ------------------------------------------------------------------------------------
124 Total (incl. mmap):
125 system bytes     =   45408256
126 in use bytes     =   35097680 : 35M
127 max mmap regions =         47
128 max mmap bytes   =   18116608
129 ----
130 Total (incl. mmap):
131 system bytes     =  438935552
132 in use bytes     =  436116560 : 436M
133 max mmap regions =         65
134 max mmap bytes   =  186437632
135
136 simplification SMDS_SpacePosition (pas de double[3]) --> 418 -33 = 385M (git SMDS_SpacePosition)
137 ----------------------------------------------------
138 Total (incl. mmap):
139 system bytes     =   42582016
140 in use bytes     =   32883552 : 33M
141 max mmap regions =         41
142 max mmap bytes   =   16371712
143 ----
144 Total (incl. mmap):
145 system bytes     =  421728256
146 in use bytes     =  418378000 : 418M
147 max mmap regions =         58
148 max mmap bytes   =  183640064
149