.xml
10.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?xml version="1.0"?>
<doc>
<assembly>
<name>System.Buffers</name>
</assembly>
<members>
<member name="T:System.Buffers.ArrayPool`1">
<summary>
Provides a resource pool that enables reusing instances of type <see cref="T:T[]"/>.
</summary>
<remarks>
<para>
Renting and returning buffers with an <see cref="T:System.Buffers.ArrayPool`1"/> can increase performance
in situations where arrays are created and destroyed frequently, resulting in significant
memory pressure on the garbage collector.
</para>
<para>
This class is thread-safe. All members may be used by multiple threads concurrently.
</para>
</remarks>
</member>
<member name="F:System.Buffers.ArrayPool`1.s_sharedInstance">
<summary>The lazily-initialized shared pool instance.</summary>
</member>
<member name="P:System.Buffers.ArrayPool`1.Shared">
<summary>
Retrieves a shared <see cref="T:System.Buffers.ArrayPool`1"/> instance.
</summary>
<remarks>
The shared pool provides a default implementation of <see cref="T:System.Buffers.ArrayPool`1"/>
that's intended for general applicability. It maintains arrays of multiple sizes, and
may hand back a larger array than was actually requested, but will never hand back a smaller
array than was requested. Renting a buffer from it with <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> will result in an
existing buffer being taken from the pool if an appropriate buffer is available or in a new
buffer being allocated if one is not available.
</remarks>
</member>
<member name="M:System.Buffers.ArrayPool`1.EnsureSharedCreated">
<summary>Ensures that <see cref="F:System.Buffers.ArrayPool`1.s_sharedInstance"/> has been initialized to a pool and returns it.</summary>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create">
<summary>
Creates a new <see cref="T:System.Buffers.ArrayPool`1"/> instance using default configuration options.
</summary>
<returns>A new <see cref="T:System.Buffers.ArrayPool`1"/> instance.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:System.Buffers.ArrayPool`1"/> instance using custom configuration options.
</summary>
<param name="maxArrayLength">The maximum length of array instances that may be stored in the pool.</param>
<param name="maxArraysPerBucket">
The maximum number of array instances that may be stored in each bucket in the pool. The pool
groups arrays of similar lengths into buckets for faster access.
</param>
<returns>A new <see cref="T:System.Buffers.ArrayPool`1"/> instance with the specified configuration options.</returns>
<remarks>
The created pool will group arrays into buckets, with no more than <paramref name="maxArraysPerBucket"/>
in each bucket and with those arrays not exceeding <paramref name="maxArrayLength"/> in length.
</remarks>
</member>
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
<summary>
Retrieves a buffer that is at least the requested length.
</summary>
<param name="minimumLength">The minimum length of the array needed.</param>
<returns>
An <see cref="T:T[]"/> that is at least <paramref name="minimumLength"/> in length.
</returns>
<remarks>
This buffer is loaned to the caller and should be returned to the same pool via
<see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"/> so that it may be reused in subsequent usage of <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/>.
It is not a fatal error to not return a rented buffer, but failure to do so may lead to
decreased application performance, as the pool may need to create a new buffer to replace
the one lost.
</remarks>
</member>
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
<summary>
Returns to the pool an array that was previously obtained via <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> on the same
<see cref="T:System.Buffers.ArrayPool`1"/> instance.
</summary>
<param name="array">
The buffer previously obtained from <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> to return to the pool.
</param>
<param name="clearArray">
If <c>true</c> and if the pool will store the buffer to enable subsequent reuse, <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"/>
will clear <paramref name="array"/> of its contents so that a subsequent consumer via <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/>
will not see the previous consumer's content. If <c>false</c> or if the pool will release the buffer,
the array's contents are left unchanged.
</param>
<remarks>
Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer
and must not use it. The reference returned from a given call to <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> must only be
returned via <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"/> once. The default <see cref="T:System.Buffers.ArrayPool`1"/>
may hold onto the returned buffer in order to rent it again, or it may release the returned buffer
if it's determined that the pool already has enough buffers stored.
</remarks>
</member>
<member name="T:System.Buffers.ArrayPoolEventSource.BufferAllocatedReason">
<summary>The reason for a BufferAllocated event.</summary>
</member>
<member name="F:System.Buffers.ArrayPoolEventSource.BufferAllocatedReason.Pooled">
<summary>The pool is allocating a buffer to be pooled in a bucket.</summary>
</member>
<member name="F:System.Buffers.ArrayPoolEventSource.BufferAllocatedReason.OverMaximumSize">
<summary>The requested buffer size was too large to be pooled.</summary>
</member>
<member name="F:System.Buffers.ArrayPoolEventSource.BufferAllocatedReason.PoolExhausted">
<summary>The pool has already allocated for pooling as many buffers of a particular size as it's allowed.</summary>
</member>
<member name="M:System.Buffers.ArrayPoolEventSource.BufferRented(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
Event for when a buffer is rented. This is invoked once for every successful call to Rent,
regardless of whether a buffer is allocated or a buffer is taken from the pool. In a
perfect situation where all rented buffers are returned, we expect to see the number
of BufferRented events exactly match the number of BuferReturned events, with the number
of BufferAllocated events being less than or equal to those numbers (ideally significantly
less than).
</summary>
</member>
<member name="M:System.Buffers.ArrayPoolEventSource.BufferAllocated(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferAllocatedReason)">
<summary>
Event for when a buffer is allocated by the pool. In an ideal situation, the number
of BufferAllocated events is significantly smaller than the number of BufferRented and
BufferReturned events.
</summary>
</member>
<member name="M:System.Buffers.ArrayPoolEventSource.BufferReturned(System.Int32,System.Int32,System.Int32)">
<summary>
Event raised when a buffer is returned to the pool. This event is raised regardless of whether
the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned
events exactly matches the number of BufferRented events.
</summary>
</member>
<member name="F:System.Buffers.DefaultArrayPool`1.DefaultMaxArrayLength">
<summary>The default maximum length of each array in the pool (2^20).</summary>
</member>
<member name="F:System.Buffers.DefaultArrayPool`1.DefaultMaxNumberOfArraysPerBucket">
<summary>The default maximum number of arrays per bucket that are available for rent.</summary>
</member>
<member name="F:System.Buffers.DefaultArrayPool`1.s_emptyArray">
<summary>Lazily-allocated empty array used when arrays of length 0 are requested.</summary>
</member>
<member name="P:System.Buffers.DefaultArrayPool`1.Id">
<summary>Gets an ID for the pool to use with events.</summary>
</member>
<member name="T:System.Buffers.DefaultArrayPool`1.Bucket">
<summary>Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd.</summary>
</member>
<member name="M:System.Buffers.DefaultArrayPool`1.Bucket.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length.
</summary>
</member>
<member name="P:System.Buffers.DefaultArrayPool`1.Bucket.Id">
<summary>Gets an ID for the bucket to use with events.</summary>
</member>
<member name="M:System.Buffers.DefaultArrayPool`1.Bucket.Rent">
<summary>Takes an array from the bucket. If the bucket is empty, returns null.</summary>
</member>
<member name="M:System.Buffers.DefaultArrayPool`1.Bucket.Return(`0[])">
<summary>
Attempts to return the buffer to the bucket. If successful, the buffer will be stored
in the bucket and true will be returned; otherwise, the buffer won't be stored, and false
will be returned.
</summary>
</member>
</members>
</doc>