---
schema_version: "1"
id: 1aa923b7aa2943d4e415c8ee22802eb15824c5eb08625ecb99e31d095db3c360
title: DataWeave メモリ管理
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.3/dataweave-memory-management.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-memory-management
source_site: docs.mulesoft.com
content_type: documentation
content_hash: ddab43223472cc8a94083375b2efb065d7322e626bb809bf2d3bd24c76bc6266
description: MuleSoft Documentation Site
release: "2.3"
latest: false
---
# DataWeave メモリ管理

Mule Runtime Engine で DataWeave を介して大きなファイルを処理する場合、どれだけのメモリをいつ使用するかを詳細に調整するためにセットアップできるいくつかの項目があります。

## [](#buffersize)RAM の使用とディスクの使用

DataWeave は小さいファイルをメモリに保存しますが、設定可能なしきい値を超えると、ディスク領域を使用してメモリ不足にならないようにします。作成されたバッファファイルはデフォルトの一時ディレクトリに配置されます。このファイルを代わりにカスタムディレクトリに保存する場合は、​`java.io.tmpdir`​ プロパティを使用してディレクトリを指定できます。

3 種類の DataWeave バッファファイルが生成されます。  

- `dw-buffer-output-${count}.tmp`  
    変換の結果がしきい値の ​**1572864 バイト**​よりも大きい場合に、変換の出力を保存するために使用されます。 このしきい値を変更するには、システムプロパティ ​`com.mulesoft.dw.max_memory_allocation`​ を追加し、新しいしきい値として使用するバイト数をそのプロパティに割り当てます。 Mule Runtime Engine は、値が参照されなくなった、JVM GC によって値が収集された、または Mule イベントの実行が終了した場合に、ファイルを削除します。
- `dw-buffer-input-${count}.tmp`  
    変換の入力がメモリ内のバッファ (デフォルトでは ​**1572864 バイト**​) よりも大きい場合に、変換の入力を保存するために使用されます。 これは ​`dw-buffer-output-${count}.tmp`​ ファイルと似ていますが、入力データ用です。
- `dw-buffer-index-${count}.tmp`  
    読み取られている値のインデックス情報を保存するために使用されます。このファイルは、DataWeave がデータにすばやくアクセスするのに役立ちます。Mule Runtime Engine は、変換の実行が終了した場合にファイルを削除します。また、foreach ループなどのストリーミングのユースケースでは、ストリームが終了した場合 (foreach の実行が終了した場合) にファイルを削除します。

システムプロパティ:  
システムプロパティはいくつかの方法で定義できます。詳細は、​[システムプロパティ](https://docs.mulesoft.com/jp/mule-runtime/4.3/configuring-properties#system-properties)​を参照してください。

- `com.mulesoft.dw.buffersize`  
    このシステムプロパティは、処理された入力および出力を保存するために DataWeave で使用するメモリ内の入力バッファおよび出力バッファのサイズ (バイト単位) を決定します。デフォルトのバッファサイズは 8192 バイト (8 KB) です。 このプロパティは数値 (バイト数での数値) を受け取ります。例: `-Dcom.mulesoft.dw.buffersize=8192`​。
- `com.mulesoft.dw.directbuffer.disable`  
    Mule 4.2.2 で導入されたこのオプションは、DataWeave がオフヒープメモリ (デフォルト) またはヒープメモリのどちらを使用するかを制御します。DataWeave は、内部バッファにはオフヒープメモリを使用します。ただし、メモリの搭載量が少ないマシンでは、この設定によって問題が起きる場合があります。 このプロパティは論理値を受け取ります。例: `-Dcom.mulesoft.dw.directbuffer.disable=true`​。
- `com.mulesoft.dw.memory_pool_size`  
    Mule 4.3.0 以降、DataWeave バッファでは、定義されたサイズまでプールからのオフヒープメモリが使用され、残りはヒープメモリを使用して割り当てられます。このプロパティはプール内のスロット数を決定します。 デフォルトのスロット数は 60 です。 このプロパティは数値 (プールのスロット数) を受け取ります。例: `-Dcom.mulesoft.dw.memory_pool_size=60`​。
- `com.mulesoft.dw.max_memory_allocation`  
    Mule 4.3.0 で導入されたこのプロパティにより、ディスクに切り替える前に使用される最大メモリ量が決まります。ペイロードがこのサイズを超えると、ペイロードは ​`dw-buffer-input-${count}.tmp`​ および ​`dw-buffer-output-${count}.tmp`​ の一時ファイルに保存されます。 また、オフヒープメモリのプールの各スロットのサイズ (バイト単位) も決まります。デフォルトのサイズは 1572864 バイト (1.5 MB) です。
- `com.mulesoft.dw.buffer.memory.monitoring`​ (実験段階)  
    Mule 4.3.0 で導入されたこのプロパティを有効にすると、スロットがメモリプールから取得または解放されるたびにメッセージが記録されます。 これは今後のバージョンでは削除されるか、動作が変更される場合があります。 このプロパティは論理値を受け取ります。例: `-Dcom.mulesoft.dw.buffer.memory.monitoring=true`​。

## [](#関連情報)関連情報

- [DataWeave スクリプト](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-language-introduction)
- [DataWeave セレクター](https://docs.mulesoft.com/jp/dataweave/2.3/dataweave-selectors)