Object Allocations in Derby
Object allocations per transaction for the tests described in Derby1961ResourceUsage2. (Derby 10.2.1.6, Sun Java SE 6 (build 1.6.0-rc-b103), Solaris 10.)
Single-record select
Allocations of each object type in a single-record select transaction (as reported by the object-alloc probe in DTrace).
|
Class name |
Bytes/tx |
Objects/tx |
Avg. size (bytes) |
|
byte[] |
612.0 |
6.8 |
90.7 |
|
char[] |
432.0 |
2.0 |
215.9 |
|
derby.impl.sql.execute.TableScanResultSet |
360.0 |
1.0 |
360.0 |
|
java.lang.Object[] |
322.0 |
6.8 |
47.7 |
|
derby.impl.sql.execute.IndexRowToBaseRowResultSet |
288.0 |
1.0 |
288.0 |
|
int[] |
280.7 |
10.8 |
26.0 |
|
derby.impl.services.locks.Lock |
228.0 |
9.5 |
24.0 |
|
java.util.Hashtable$Entry |
205.6 |
8.6 |
24.0 |
|
derby.iapi.store.raw.PageKey |
168.0 |
7.0 |
24.0 |
|
derby.impl.store.access.btree.index.B2IForwardScan |
152.0 |
1.0 |
152.0 |
|
derby.impl.store.raw.data.BaseContainerHandle |
144.0 |
3.0 |
48.0 |
|
derby.impl.jdbc.EmbedResultSet20 |
128.0 |
1.0 |
128.0 |
|
java.util.Vector |
120.0 |
5.0 |
24.0 |
|
derby.iapi.types.DataValueDescriptor[] |
120.0 |
5.0 |
24.0 |
|
derby.iapi.store.raw.FetchDescriptor |
119.8 |
3.7 |
32.0 |
|
derby.impl.store.access.heap.HeapRowLocation |
96.0 |
3.0 |
32.0 |
|
derby.impl.store.raw.data.RecordId |
96.0 |
4.0 |
24.0 |
|
derby.impl.store.access.heap.OpenHeap |
96.0 |
2.0 |
48.0 |
|
derby.impl.store.access.conglomerate.OpenConglomerateScratchSpace |
96.0 |
3.0 |
32.0 |
|
derby.iapi.services.io.FormatableBitSet |
89.9 |
3.7 |
24.0 |
|
java.util.HashMap$Entry |
72.2 |
3.0 |
24.0 |
|
derby.impl.store.access.btree.BTreeRowPosition |
64.0 |
1.0 |
64.0 |
|
java.nio.HeapCharBuffer |
48.0 |
1.0 |
48.0 |
|
java.nio.HeapByteBuffer |
48.0 |
1.0 |
48.0 |
|
derby.iapi.types.SQLVarchar |
48.0 |
1.0 |
48.0 |
|
java.util.LinkedList$Entry |
40.0 |
1.7 |
24.0 |
|
derby.impl.store.raw.xact.TransactionTableEntry |
40.0 |
1.0 |
40.0 |
|
derby.impl.store.access.btree.SearchParameters |
40.0 |
1.0 |
40.0 |
|
java.lang.ref.Finalizer |
32.0 |
1.0 |
32.0 |
|
java.lang.Long |
32.0 |
2.0 |
16.0 |
|
java.util.HashMap$KeyIterator |
32.0 |
1.0 |
32.0 |
|
derby.impl.store.access.heap.HeapController |
32.0 |
2.0 |
16.0 |
|
derby.impl.store.access.conglomerate.RowPosition |
32.0 |
1.0 |
32.0 |
|
derby.impl.sql.execute.ValueRow |
32.0 |
2.0 |
16.0 |
|
derby.iapi.types.SQLInteger |
32.0 |
2.0 |
16.0 |
|
java.lang.String |
24.0 |
1.0 |
24.0 |
|
derby.impl.store.access.btree.index.B2IRowLocking2 |
24.0 |
1.0 |
24.0 |
|
java.lang.Integer |
16.0 |
1.0 |
16.0 |
|
char[][] |
16.0 |
1.0 |
16.0 |
|
java.util.Collections$UnmodifiableRandomAccessList |
16.0 |
1.0 |
16.0 |
|
derby.impl.store.raw.xact.XactId |
16.0 |
1.0 |
16.0 |
|
derby.impl.jdbc.EmbedResultSetMetaData |
16.0 |
1.0 |
16.0 |
|
java.lang.Byte |
16.0 |
1.0 |
16.0 |
|
derby.impl.services.locks.ActiveLock |
16.0 |
0.5 |
32.0 |
|
derby.impl.store.access.btree.index.B2IUndo |
8.0 |
1.0 |
8.0 |
|
derby.impl.services.locks.LockControl |
5.3 |
0.2 |
32.0 |
|
java.util.LinkedList |
4.0 |
0.2 |
24.0 |
|
Total |
4971.8 |
120.4 |
41.3 |
Single-record update
Allocations of each object type in a single-record update transaction (as reported by the object-alloc probe in DTrace).
|
Class name |
Bytes/tx |
Objects/tx |
Avg. size (bytes) |
|
char[] |
433.3 |
2.0 |
215.2 |
|
derby.impl.sql.execute.TableScanResultSet |
360.0 |
1.0 |
360.0 |
|
java.lang.Object[] |
322.0 |
6.7 |
47.7 |
|
derby.impl.services.locks.Lock |
297.2 |
12.4 |
24.0 |
|
derby.impl.sql.execute.IndexRowToBaseRowResultSet |
288.0 |
1.0 |
288.0 |
|
derby.impl.sql.execute.ProjectRestrictResultSet |
248.0 |
1.0 |
248.0 |
|
derby.impl.sql.execute.UpdateResultSet |
240.0 |
1.0 |
240.0 |
|
java.util.Hashtable$Entry |
225.1 |
9.4 |
24.0 |
|
derby.impl.sql.execute.NormalizeResultSet |
216.0 |
1.0 |
216.0 |
|
int[] |
209.6 |
6.9 |
30.4 |
|
derby.iapi.store.raw.PageKey |
192.0 |
8.0 |
24.0 |
|
derby.iapi.types.DataValueDescriptor[] |
160.0 |
7.0 |
22.9 |
|
byte[] |
154.3 |
5.7 |
26.8 |
|
derby.impl.store.access.btree.index.B2IForwardScan |
152.0 |
1.0 |
152.0 |
|
derby.impl.store.raw.data.BaseContainerHandle |
144.0 |
3.0 |
48.0 |
|
derby.impl.store.access.conglomerate.OpenConglomerateScratchSpace |
128.0 |
4.0 |
32.0 |
|
java.util.Vector |
120.0 |
5.0 |
24.0 |
|
derby.impl.store.raw.data.RecordId |
120.0 |
5.0 |
24.0 |
|
derby.iapi.store.raw.FetchDescriptor |
119.9 |
3.7 |
32.0 |
|
derby.iapi.services.io.FormatableBitSet |
113.9 |
4.7 |
24.0 |
|
derby.impl.sql.execute.RowChangerImpl |
104.0 |
1.0 |
104.0 |
|
derby.iapi.types.SQLVarchar |
96.0 |
2.0 |
48.0 |
|
derby.impl.store.access.heap.HeapRowLocation |
96.0 |
3.0 |
32.0 |
|
derby.impl.store.access.heap.OpenHeap |
96.0 |
2.0 |
48.0 |
|
derby.impl.store.raw.data.StoredRecordHeader |
96.0 |
2.0 |
48.0 |
|
java.util.HashMap$Entry |
72.3 |
3.0 |
24.0 |
|
derby.impl.store.raw.log.LogCounter |
72.0 |
3.0 |
24.0 |
|
derby.impl.store.access.btree.BTreeRowPosition |
64.0 |
1.0 |
64.0 |
|
derby.impl.store.access.conglomerate.RowPosition |
64.0 |
2.0 |
32.0 |
|
java.util.LinkedList$Entry |
61.0 |
2.5 |
24.0 |
|
derby.impl.store.raw.data.UpdateOperation |
56.0 |
1.0 |
56.0 |
|
java.nio.HeapCharBuffer |
48.0 |
1.0 |
48.0 |
|
java.nio.HeapByteBuffer |
48.0 |
1.0 |
48.0 |
|
java.lang.Long |
48.0 |
3.0 |
16.0 |
|
derby.impl.sql.execute.ValueRow |
48.0 |
3.0 |
16.0 |
|
derby.impl.store.raw.xact.TransactionTableEntry |
40.0 |
1.0 |
40.0 |
|
derby.impl.store.access.btree.SearchParameters |
40.0 |
1.0 |
40.0 |
|
derby.impl.services.locks.LockControl |
36.3 |
1.1 |
32.0 |
|
java.lang.Integer |
32.0 |
2.0 |
16.0 |
|
char[][] |
32.0 |
2.0 |
16.0 |
|
java.util.HashMap$KeyIterator |
32.0 |
1.0 |
32.0 |
|
derby.impl.store.access.heap.HeapController |
32.0 |
2.0 |
16.0 |
|
derby.iapi.types.SQLInteger |
32.0 |
2.0 |
16.0 |
|
java.lang.Byte |
32.0 |
2.0 |
16.0 |
|
java.lang.String |
24.2 |
1.0 |
24.0 |
|
derby.impl.store.raw.xact.SavePoint |
24.0 |
1.0 |
24.0 |
|
derby.impl.store.access.btree.index.B2IRowLocking2 |
24.0 |
1.0 |
24.0 |
|
derby.iapi.util.ByteArray |
24.0 |
1.0 |
24.0 |
|
derby.iapi.types.DataTypeDescriptor[] |
24.0 |
1.0 |
24.0 |
|
derby.impl.services.locks.ActiveLock |
19.8 |
0.6 |
32.0 |
|
boolean[] |
16.0 |
1.0 |
16.0 |
|
java.util.Collections$UnmodifiableRandomAccessList |
16.0 |
1.0 |
16.0 |
|
derby.impl.store.raw.xact.XactId |
16.0 |
1.0 |
16.0 |
|
derby.iapi.types.SQLRef |
16.0 |
1.0 |
16.0 |
|
derby.iapi.types.DataValueDescriptor[][] |
16.0 |
1.0 |
16.0 |
|
derby.impl.store.raw.xact.EndXact |
16.0 |
1.0 |
16.0 |
|
derby.impl.store.raw.xact.BeginXact |
16.0 |
1.0 |
16.0 |
|
derby.impl.store.access.btree.index.B2IUndo |
8.0 |
1.0 |
8.0 |
|
java.util.LinkedList |
3.2 |
0.1 |
24.0 |
|
Total |
5884.5 |
148.1 |
39.7 |
Join
Allocations of each object type in a join transaction (as reported by the object-alloc probe in DTrace).
|
Class name |
Bytes/tx |
Objects/tx |
Avg. size (bytes) |
|
derby.iapi.store.raw.PageKey |
283055 |
11794 |
24 |
|
derby.impl.store.raw.data.RecordId |
267998 |
11167 |
24 |
|
java.util.Hashtable$Entry |
42607 |
1775 |
24 |
|
derby.impl.store.access.heap.HeapRowLocation |
32659 |
1021 |
32 |
|
derby.iapi.types.DataValueDescriptor[] |
24583 |
1026 |
24 |
|
derby.impl.services.locks.Lock |
20552 |
856 |
24 |
|
derby.iapi.types.SQLInteger |
16330 |
1021 |
16 |
|
java.util.Hashtable$Entry[] |
12311 |
8 |
1537 |
|
int[] |
4656 |
12 |
390 |
|
java.util.HashMap$Entry |
1970 |
82 |
24 |
|
java.util.LinkedList$Entry |
637 |
27 |
24 |
|
derby.impl.services.locks.ActiveLock |
487 |
15 |
32 |
|
derby.impl.sql.execute.BulkTableScanResultSet |
376 |
1 |
376 |
|
derby.impl.sql.execute.HashScanResultSet |
328 |
1 |
328 |
|
derby.impl.store.access.btree.index.B2IForwardScan |
304 |
2 |
152 |
|
derby.impl.sql.execute.HashJoinResultSet |
264 |
1 |
264 |
|
derby.impl.sql.execute.ProjectRestrictResultSet |
248 |
1 |
248 |
|
java.lang.Object[] |
225 |
4 |
56 |
|
derby.impl.store.raw.data.BaseContainerHandle |
192 |
4 |
48 |
|
derby.impl.services.locks.LockControl |
154 |
4 |
32 |
|
derby.impl.store.access.conglomerate.OpenConglomerateScratchSpace |
128 |
4 |
32 |
|
derby.impl.store.access.btree.BTreeRowPosition |
128 |
2 |
64 |
|
derby.impl.jdbc.EmbedResultSet20 |
128 |
1 |
128 |
|
java.util.LinkedList |
115 |
4 |
24 |
|
derby.iapi.types.DataValueDescriptor[][] |
112 |
3 |
37 |
|
java.util.Vector |
96 |
4 |
24 |
|
derby.impl.store.access.heap.OpenHeap |
96 |
2 |
48 |
|
derby.iapi.store.raw.FetchDescriptor |
64 |
2 |
32 |
|
java.util.HashMap$KeyIterator |
64 |
2 |
32 |
|
derby.impl.sql.execute.ValueRow |
64 |
4 |
16 |
|
derby.impl.store.access.BackingStoreHashTableFromScan |
64 |
1 |
64 |
|
java.util.HashMap$Entry[] |
48 |
1 |
48 |
|
java.lang.Long |
48 |
3 |
16 |
|
derby.iapi.services.loader.InstanceGetter[] |
48 |
2 |
24 |
|
derby.impl.store.access.btree.index.B2IRowLocking2 |
48 |
2 |
24 |
|
java.util.HashMap |
40 |
1 |
40 |
|
java.util.Hashtable |
40 |
1 |
40 |
|
derby.impl.store.raw.xact.TransactionTableEntry |
40 |
1 |
40 |
|
java.lang.ref.Finalizer |
32 |
1 |
32 |
|
derby.impl.store.access.heap.HeapController |
32 |
2 |
16 |
|
derby.impl.sql.execute.IndexRow |
24 |
1 |
24 |
|
boolean[] |
16 |
1 |
16 |
|
java.util.Collections$UnmodifiableRandomAccessList |
16 |
1 |
16 |
|
java.util.HashMap$KeySet |
16 |
1 |
16 |
|
derby.impl.store.raw.xact.XactId |
16 |
1 |
16 |
|
derby.impl.jdbc.EmbedResultSetMetaData |
16 |
1 |
16 |
|
derby.impl.store.access.btree.index.B2IUndo |
16 |
2 |
8 |
|
derby.iapi.services.io.FormatableIntHolder[] |
16 |
1 |
16 |
|
Total |
711510 |
28875 |
25 |