データをコールバックに渡すときに新しいバッファを割り当てる DownloadHandlerScript を作成します。
このデフォルトのコンストラクターは、non-preallocated モード(事前に割り当てないモード)にこの DownloadHanderScript を配置します。これは ReceiveData コールバックの操作に影響します。
非事前割当モードの場合、ReceiveData が呼び出される度に、新しいマネージバイト配列が割り当てられ、ReceiveData に渡された配列の長さは消費される新しいバイト数に常に等しくなります。
これは便利ですが、不要なガベージ コレクションを引き起こす可能性があります。不要なガベージ コレクションを回避する実装が必要な場合、事前割当てモードを使用してください。
preallocatedBuffer | DownloadHandler.ReceiveData で使用するためにデータがコピーされるバイトバッファ |
データをコールバックに渡すために事前割当バッファーを再利用する DownloadHandlerScript を作成します。
このコンストラクターは "事前割当モード" にこの DownloadHandlerScript を配置します。これは DownloadHandler.ReceiveData コールバックの操作に影響します。
事前割当モードのとき、preallocatedBuffer
バイト配列は新しいバッファを割り当てる度に代わりにデータを DownloadHandler.ReceiveData コールバックに渡すために繰り返し再利用されます。システムは使用される度に配列を 0 にしません。なので、DownloadHandler.ReceiveData への dataLength
引数はバイトが新しいかどうかについて知るために用いる必要があります。
このモードでは DownloadHandlerScript は HTTP レスポンスデータのダウンロードや処理中に任意のメモリを割り当てません。ガベージコレクションを気にするような事例では事前割当モードの使用をお勧めします。