Skip to content

Commit b48699e

Browse files
umuoy1aduh95
authored andcommitted
doc: correct default highWaterMark values
File write streams inherit the default byte-stream highWaterMark. The fixed 16 KiB value became stale when that default changed. Also document the Windows-specific byte-stream default. Signed-off-by: umuoy1 <burningdian@gmail.com> PR-URL: #64617 Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
1 parent ceb0e99 commit b48699e

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

doc/api/fs.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,9 @@ fd.createReadStream({ start: 90, end: 99 });
323323
<!-- YAML
324324
added: v16.11.0
325325
changes:
326+
- version: v22.0.0
327+
pr-url: https://github.com/nodejs/node/pull/52037
328+
description: bump default highWaterMark.
326329
- version:
327330
- v21.0.0
328331
- v20.10.0
@@ -335,7 +338,8 @@ changes:
335338
* `autoClose` {boolean} **Default:** `true`
336339
* `emitClose` {boolean} **Default:** `true`
337340
* `start` {integer}
338-
* `highWaterMark` {number} **Default:** `16384`
341+
* `highWaterMark` {number} **Default:** See
342+
[`stream.getDefaultHighWaterMark()`][].
339343
* `flush` {boolean} If `true`, the underlying file descriptor is flushed
340344
prior to closing it. **Default:** `false`.
341345
* Returns: {fs.WriteStream}
@@ -3052,6 +3056,9 @@ If `options` is a string, then it specifies the encoding.
30523056
<!-- YAML
30533057
added: v0.1.31
30543058
changes:
3059+
- version: v22.0.0
3060+
pr-url: https://github.com/nodejs/node/pull/52037
3061+
description: bump default highWaterMark.
30553062
- version:
30563063
- v21.0.0
30573064
- v20.10.0
@@ -3109,7 +3116,8 @@ changes:
31093116
* `start` {integer}
31103117
* `fs` {Object|null} **Default:** `null`
31113118
* `signal` {AbortSignal|null} **Default:** `null`
3112-
* `highWaterMark` {number} **Default:** `16384`
3119+
* `highWaterMark` {number} **Default:** See
3120+
[`stream.getDefaultHighWaterMark()`][].
31133121
* `flush` {boolean} If `true`, the underlying file descriptor is flushed
31143122
prior to closing it. **Default:** `false`.
31153123
* Returns: {fs.WriteStream}
@@ -9296,6 +9304,7 @@ the file contents.
92969304
[`minimatch`]: https://github.com/isaacs/minimatch
92979305
[`node:stream/iter`]: stream_iter.md
92989306
[`statfs.bsize`]: #statfsbsize
9307+
[`stream.getDefaultHighWaterMark()`]: stream.md#streamgetdefaulthighwatermarkobjectmode
92999308
[`stream/iter pipeTo()`]: stream_iter.md#pipetosource-transforms-writer-options
93009309
[`stream/iter pull()`]: stream_iter.md#pullsource-transforms-options
93019310
[`stream/iter pullSync()`]: stream_iter.md#pullsyncsource-transforms

doc/api/stream.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3615,13 +3615,18 @@ reader.read().then(({ value, done }) => {
36153615
added:
36163616
- v19.9.0
36173617
- v18.17.0
3618+
changes:
3619+
- version: v22.0.0
3620+
pr-url: https://github.com/nodejs/node/pull/52037
3621+
description: bump default highWaterMark.
36183622
-->
36193623

36203624
* `objectMode` {boolean}
36213625
* Returns: {integer}
36223626

3623-
Returns the default highWaterMark used by streams.
3624-
Defaults to `65536` (64 KiB), or `16` for `objectMode`.
3627+
Returns the default highWaterMark used by streams. Defaults to `16` for
3628+
`objectMode`. For byte streams, it defaults to `65536` (64 KiB) on non-Windows
3629+
platforms and `16384` (16 KiB) on Windows.
36253630

36263631
### `stream.setDefaultHighWaterMark(objectMode, value)`
36273632

@@ -3751,7 +3756,7 @@ changes:
37513756
* `options` {Object}
37523757
* `highWaterMark` {number} Buffer level when
37533758
[`stream.write()`][stream-write] starts returning `false`. **Default:**
3754-
`65536` (64 KiB), or `16` for `objectMode` streams.
3759+
See [`stream.getDefaultHighWaterMark()`][].
37553760
* `decodeStrings` {boolean} Whether to encode `string`s passed to
37563761
[`stream.write()`][stream-write] to `Buffer`s (with the encoding
37573762
specified in the [`stream.write()`][stream-write] call) before passing
@@ -4125,7 +4130,7 @@ changes:
41254130
* `options` {Object}
41264131
* `highWaterMark` {number} The maximum [number of bytes][hwm-gotcha] to store
41274132
in the internal buffer before ceasing to read from the underlying resource.
4128-
**Default:** `65536` (64 KiB), or `16` for `objectMode` streams.
4133+
**Default:** See [`stream.getDefaultHighWaterMark()`][].
41294134
* `encoding` {string} If specified, then buffers will be decoded to
41304135
strings using the specified encoding. **Default:** `null`.
41314136
* `objectMode` {boolean} Whether this stream should behave
@@ -5066,6 +5071,7 @@ contain multi-byte characters.
50665071
[`stream.cork()`]: #writablecork
50675072
[`stream.duplexPair()`]: #streamduplexpairoptions
50685073
[`stream.finished()`]: #streamfinishedstream-options-callback
5074+
[`stream.getDefaultHighWaterMark()`]: #streamgetdefaulthighwatermarkobjectmode
50695075
[`stream.pipe()`]: #readablepipedestination-options
50705076
[`stream.pipeline()`]: #streampipelinesource-transforms-destination-callback
50715077
[`stream.uncork()`]: #writableuncork

0 commit comments

Comments
 (0)