On Thu, 2 Dec 1999 15:31:22 +0100 (MET), Rene Brun wrote:
>Hi Mariusz,
>It is difficult to come with a diagnostic without more information.
>You do not mention how many keys you have created (10, 10 millions ?)
There are over 25,000 directories each with < 300 objects, on average
(6,686,217 objects in total), though some directories contain closer to 1000
objects. The size of each object in memory is 52 bytes, and on file 94 (48
bytes for the object + 46 for key). The total file size is close to 1GB and
an update run of about 10,000 objects (each in a separate directory)
consumed close to 2GB of virtual memory.
>When you write an object to a file via obj->Write
>a TKey object is created in memory (about 70 bytes). The current directory
>holds a list of TKeys.
As per the code fragment, I force the (re)write of the directory header
and then I exit the directory. I presume that all the structures in memory
pertaining to that directory would be freed at that point.
>> if (strcmp(t, prev_t) != 0) {
>> gDirectory->Write(NULL, TObject::kOverwrite);
>What is your estimation of your "claimed leak" wrt the number of
>objects written ?
Almost all of the allocated memory thoughout the run. Here are the stats
you asked for (with appologies to the group):
***** Memory and object stats at start of Root *****
Heap statistics
size alloc free diff
================================================
8 1 0 1
16 4 0 4
20 1 0 1
28 4 1 3
36 2 0 2
40 2 0 2
44 3 0 3
72 1 0 1
168 1 0 1
404 2 0 2
------------------------------------------------
Total: 1804 296 1508
================================================
Object statistics
class cnt on heap size total size heap size
============================================================================
TOrdCollection 5 5 40 200 200
TClassTable 1 1 12 12 12
THashTable 2 2 36 72 72
THashList 2 2 44 88 88
TEnv 1 1 24 24 24
TObjectTable 1 1 24 24 24
TROOT 1 0 240 240 0
TWinNTSystem 1 1 664 664 664
----------------------------------------------------------------------------
Total: 14 13 1084 1324 1084
============================================================================
[NOTE: the object stats are as above and constant throughout the test run,
so I omit them below, but the memory stats do tell the story]
***** Memory stats after 100 dirs and 47199 objects *****
Heap statistics
size alloc free diff
================================================
8 14 0 14
14 98 0 98
16 122890 28070 94820
18 120 90 30
19 272 204 68
20 54667 54666 1
21 141597 94398 47199
28 94613 47300 47313
36 268 70 198
40 31819 7000 24819
44 199 0 199
72 14 0 14
80 47398 101 47297
84 98 0 98
168 1 0 1
404 198 70 128
1604 70 0 70
------------------------------------------------
Total: 123965957 115163754 8802203
================================================
***** Memory stats after 200 dirs and 71447 objects *****
Heap statistics
size alloc free diff
================================================
8 14 0 14
14 197 0 197
16 178595 34883 143712
17 168 126 42
18 324 243 81
19 296 222 74
20 81029 81028 1
21 214341 142894 71447
28 143307 71647 71660
36 483 87 396
40 45102 8699 36403
44 397 0 397
72 14 0 14
80 71844 200 71644
84 197 0 197
168 1 0 1
404 396 87 309
1588 1 0 1
1604 86 0 86
------------------------------------------------
Total: 187415929 174101746 13314183
================================================
***** Memory stats after 300 dirs and 92134 objects *****
Heap statistics
size alloc free diff
================================================
8 14 0 14
14 296 0 296
16 227984 42502 185482
17 444 333 111
18 444 333 111
19 296 222 74
20 104033 104032 1
21 276402 184268 92134
28 184879 92433 92446
36 700 106 594
40 58225 10599 47626
44 595 0 595
72 14 0 14
80 92729 299 92430
84 296 0 296
168 1 0 1
404 594 106 488
1588 1 0 1
1604 105 0 105
------------------------------------------------
Total: 241688614 224447829 17240785
================================================
.
.
.
***** Memory stats after 1000 dirs and 275981 objects *****
Heap statistics
size alloc free diff
================================================
8 14 0 14
14 993 3 990
15 8 6 2
16 687239 131252 555987
17 2432 1824 608
18 980 735 245
19 376 282 94
20 312990 312989 1
21 827943 551962 275981
28 553959 276973 276986
36 2307 327 1980
40 177367 32702 144665
44 1981 0 1981
72 16 2 14
80 277962 992 276970
84 989 0 989
168 1 0 1
404 1980 327 1653
1556 2 0 2
1588 4 0 4
1604 309 0 309
1636 12 0 12
------------------------------------------------
Total: 724332415 672475420 51856995
================================================
At this point the system shows the program to use 89MB of physical memory
and 112MB of virtual memory, and the file size is 37MB.
>
>Rene Brun
Thanks,
/Mariusz
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:43 MET