Class ArrayPool
A pooled memory allocator. May be used optionally during serializaiton to avoid generation of garbage.
Namespace: USD.NET
Syntax
public class ArrayPool
Fields
sm_defaultCtor
Declaration
protected static readonly Type[] sm_defaultCtor
Field Value
| Type | Description |
|---|---|
| Type[] |
sm_noParameters
Declaration
protected static readonly object[] sm_noParameters
Field Value
| Type | Description |
|---|---|
| Object[] |
Methods
Free(Type, UInt32, Array)
Adds the given array to the allocator pool. Note that the array need not have been allocated via malloc.
Declaration
public virtual void Free(Type arrayType, uint size, Array array)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | arrayType | |
| UInt32 | size | |
| Array | array |
Remarks
Note that objects returned to the allocator pool will not be garbage collected and will not be disposed.
FreeHandle(Type, Object)
Adds the given handle to the allocator pool. Note that the handle need not have been allocated via malloc.
Declaration
public virtual void FreeHandle(Type type, object handle)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | type | |
| Object | handle |
Remarks
Note that objects returned to the allocator pool will not be garbage collected and will not be disposed.
FreeHandle<T>(T)
Adds the given handle to the allocator pool. Note that the handle need not have been allocated via malloc.
Declaration
public virtual void FreeHandle<T>(T handle)
Parameters
| Type | Name | Description |
|---|---|---|
| T | handle |
Type Parameters
| Name | Description |
|---|---|
| T |
Remarks
Note that objects returned to the allocator pool will not be garbage collected and will not be disposed.
Malloc<T>(UInt32)
Allocates a new array of type T, returning ownership to the caller. Uses an existing array from the pool if available.
Declaration
public virtual T[] Malloc<T>(uint size)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | size | The number of elements to allocate in the array |
Returns
| Type | Description |
|---|---|
| T[] |
Type Parameters
| Name | Description |
|---|---|
| T | The element type of the array |
MallocHandle(Type)
Allocates a new object of the specified type, transferring ownership to the caller. If an an existing object is available in the pool, it will be reused.
Declaration
public virtual object MallocHandle(Type type)
Parameters
| Type | Name | Description |
|---|---|---|
| Type | type |
Returns
| Type | Description |
|---|---|
| Object |
Remarks
This is primarily intended for use with wrapped, unmanaged objects (hence the name "handle") which tend to have a fixed overhead for every object instance.