Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Stream::setDefaultHighWaterMark()メソッドの使い方

setDefaultHighWaterMarkメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

setDefaultHighWaterMarkメソッドは、Node.jsのStreamモジュールにおいて、新しく作成されるストリームインスタンスのデフォルトのhighWaterMark値を設定するために使用されるメソッドです。highWaterMarkとは、ストリームの内部バッファが保持できるデータの最大量を指し、これをバイト数またはオブジェクト数で定義します。この値を超えると、読み込み可能なストリームではそれ以上データを読み込まなくなり、書き込み可能なストリームでは書き込み処理が一時的に停止してバックプレッシャーを適用するようになります。

このメソッドは、引数としてオブジェクトを受け取ります。このオブジェクトのキーには、'readable''writable''duplex'といったストリームの種類を指定し、値にはそれぞれのストリームタイプに対するデフォルトのhighWaterMarkの数値を設定します。例えば、Stream.setDefaultHighWaterMark({ readable: 1024, writable: 1024 })のように使用することで、後続の読み込みストリームと書き込みストリームのデフォルトバッファサイズを1024バイトに設定できます。

一度このメソッドでデフォルト値が設定されると、以降に作成されるすべてのストリームインスタンスにその値が適用されます。ただし、すでに存在しているストリームインスタンスの設定には影響しません。また、個別のストリームインスタンスを生成する際に、コンストラクタオプションでhighWaterMarkを明示的に指定した場合は、そちらの設定がこのデフォルト設定よりも優先されます。この機能は、アプリケーション全体でストリームのバッファリング戦略を一貫させたい場合に非常に有用です。

構文(syntax)

1Stream.setDefaultHighWaterMark('Readable', 65536);

引数(parameters)

objectMode, value

  • objectMode: boolean: ストリームがオブジェクトを扱うモードにするかどうかを指定します。trueの場合、ストリームはオブジェクトを、falseの場合、バイト列(Buffer)を扱います。
  • value: number: ストリームのhigh water markの値を指定します。この値は、ストリームがデータを処理する際のバッファリングの上限を示します。

戻り値(return)

Stream

このメソッドは、ストリームオブジェクト自身を返します。これにより、メソッドチェーン(メソッドを連続して呼び出すこと)が可能になります。

関連コンテンツ