close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Ticket #1101: TestInstances.tol

File TestInstances.tol, 1.8 KB (added by Pedro Gea, 14 years ago)
Line 
1
2//////////////////////////////////////////////////////////////////////////////
3// Creación de los datos
4
5Real no1 = Copy(NObject);
6
7Set matrices = For(1, 500, Matrix (Real i) {
8  Matrix return = Rand(50000, 1, 0, 1)
9});
10
11Real no2 = Copy(NObject);
12
13Real no2 - no1; // 507
14// RAM: + 288 MB
15
16//////////////////////////////////////////////////////////////////////////////
17// Funciones
18
19NameBlock Instance1(Set object.) {
20  // +9 NObject
21  NameBlock a = [[
22    Set data = DeepCopy(object.)
23  ]];
24  a
25};
26
27NameBlock Instance2(Set object.) {
28  // Usando un artificio en la construción de la instancia
29  // +6 NObject
30  NameBlock a = [[
31    Set data = Copy(Empty)
32  ]];
33  Set a::data := DeepCopy(object.);
34  a
35};
36
37NameBlock Instance3(Set object.) {
38  // +4 NObject
39  NameBlock a = [[
40    Set data = Copy(Empty)
41  ]];
42  Set a::data := DeepCopy(object.);
43  //! Si se devuelve una copia no importa dónde se asignen los datos
44  Copy(a)
45};
46
47//////////////////////////////////////////////////////////////////////////////
48// Creación de las instancias
49
50Real no3 = Copy(NObject);
51
52Set matrices2 = EvalSet(matrices, Anything (Matrix m) {
53  NameBlock _b = Instance1([[m]]);
54  _b
55  //Copy(_b)  esto reduce más aún
56});
57
58Real no4 = Copy(NObject);
59
60Real no4 - no3; // 4505, 3005, 2005 (según sea Instance1, 2 o 3)
61// RAM: + 288 MB
62
63//////////////////////////////////////////////////////////////////////////////
64// Destrucción de los datos originales
65
66Real no5 = Copy(NObject);
67
68Set matrices := Copy(Empty);
69
70Real no6 = Copy(NObject);
71
72Real no6 - no5; // 1, -499, -499 (según sea Instance1, 2 o 3)
73// RAM:  -  0 MB (si es Instance1)
74//       -288 MB (si es Instance2 o 3)
75
76//////////////////////////////////////////////////////////////////////////////
77
78
79