From 9e20318a5725707ac26db8362cd7203024bbeede Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Wed, 20 Apr 2022 00:46:37 +0200 Subject: [PATCH] doc: consolidate use of multiple-byte units Refs: https://en.wikipedia.org/wiki/Byte#Multiple-byte_units PR-URL: https://github.com/nodejs/node/pull/42587 Reviewed-By: James M Snell Reviewed-By: Darshan Sen Reviewed-By: Paolo Insogna Reviewed-By: Matteo Collina Reviewed-By: Mestery --- doc/api/buffer.md | 6 +++--- doc/api/cli.md | 8 ++++---- doc/api/errors.md | 4 ++-- doc/api/fs.md | 12 ++++++------ doc/api/http.md | 6 +++--- doc/api/stream.md | 6 +++--- doc/api/util.md | 4 ++-- .../investigating-native-memory-leaks.md | 2 +- doc/node.1 | 2 +- lib/assert.js | 2 +- lib/fs.js | 2 +- lib/internal/crypto/scrypt.js | 2 +- lib/internal/errors.js | 2 +- lib/internal/fs/utils.js | 2 +- src/inspector_agent.cc | 6 +++--- test/common/README.md | 2 +- test/parallel/test-crypto-scrypt.js | 2 +- test/parallel/test-fs-util-validateoffsetlength.js | 2 +- test/parallel/test-http2-max-session-memory-leak.js | 2 +- test/parallel/test-tls-securepair-leak.js | 4 ++-- tools/compress_json.py | 2 +- tools/gyp/pylib/gyp/generator/ninja.py | 4 ++-- tools/inspector_protocol/encoding/encoding.h | 2 +- tools/inspector_protocol/lib/encoding_h.template | 2 +- tools/msvs/install_tools/install_tools.bat | 2 +- tools/v8_gypfiles/features.gypi | 2 +- 26 files changed, 46 insertions(+), 46 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 581cb20912d399..c2640b6730da09 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -815,7 +815,7 @@ _may contain sensitive data_. Use [`buf.fill(0)`][`buf.fill()`] to initialize such `Buffer` instances with zeroes. When using [`Buffer.allocUnsafe()`][] to allocate new `Buffer` instances, -allocations under 4 KB are sliced from a single pre-allocated `Buffer`. This +allocations under 4 KiB are sliced from a single pre-allocated `Buffer`. This allows applications to avoid the garbage collection overhead of creating many individually allocated `Buffer` instances. This approach improves both performance and memory usage by eliminating the need to track and clean up as @@ -5182,9 +5182,9 @@ changes: * {integer} The largest size allowed for a single `Buffer` instance. On 32-bit architectures, this value currently is 230 - 1 (about 1 -GB). +GiB). -On 64-bit architectures, this value currently is 232 (about 4 GB). +On 64-bit architectures, this value currently is 232 (about 4 GiB). It reflects [`v8::TypedArray::kMaxLength`][] under the hood. diff --git a/doc/api/cli.md b/doc/api/cli.md index 053470b6a78865..2681d051718f99 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -656,10 +656,10 @@ added: changes: - version: v13.13.0 pr-url: https://github.com/nodejs/node/pull/32520 - description: Change maximum default size of HTTP headers from 8 KB to 16 KB. + description: Change maximum default size of HTTP headers from 8 KiB to 16 KiB. --> -Specify the maximum size, in bytes, of HTTP headers. Defaults to 16 KB. +Specify the maximum size, in bytes, of HTTP headers. Defaults to 16 KiB. ### `--napi-modules` @@ -1940,8 +1940,8 @@ Sets the max memory size of V8's old memory section. As memory consumption approaches the limit, V8 will spend more time on garbage collection in an effort to free unused memory. -On a machine with 2 GB of memory, consider setting this to -1536 (1.5 GB) to leave some memory for other uses and avoid swapping. +On a machine with 2 GiB of memory, consider setting this to +1536 (1.5 GiB) to leave some memory for other uses and avoid swapping. ```console $ node --max-old-space-size=1536 index.js diff --git a/doc/api/errors.md b/doc/api/errors.md index d4f7c9656956a4..c9ebd215a857b8 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -2914,11 +2914,11 @@ changes: - v10.15.0 commit: 186035243fad247e3955f pr-url: https://github.com/nodejs-private/node-private/pull/143 - description: Max header size in `http_parser` was set to 8 KB. + description: Max header size in `http_parser` was set to 8 KiB. --> Too much HTTP header data was received. In order to protect against malicious or -malconfigured clients, if more than 8 KB of HTTP header data is received then +malconfigured clients, if more than 8 KiB of HTTP header data is received then HTTP parsing will abort without a request or response object being created, and an `Error` with this code will be emitted. diff --git a/doc/api/fs.md b/doc/api/fs.md index 2c9751b40d3b09..a242f9a97a809c 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -262,8 +262,8 @@ added: v16.11.0 * `highWaterMark` {integer} **Default:** `64 * 1024` * Returns: {fs.ReadStream} -Unlike the 16 kb default `highWaterMark` for a {stream.Readable}, the stream -returned by this method has a default `highWaterMark` of 64 kb. +Unlike the 16 KiB default `highWaterMark` for a {stream.Readable}, the stream +returned by this method has a default `highWaterMark` of 64 KiB. `options` can include `start` and `end` values to read a range of bytes from the file instead of the entire file. Both `start` and `end` are inclusive and @@ -2094,8 +2094,8 @@ changes: * `fs` {Object|null} **Default:** `null` * Returns: {fs.ReadStream} -Unlike the 16 kb default `highWaterMark` for a {stream.Readable}, the stream -returned by this method has a default `highWaterMark` of 64 kb. +Unlike the 16 KiB default `highWaterMark` for a {stream.Readable}, the stream +returned by this method has a default `highWaterMark` of 64 KiB. `options` can include `start` and `end` values to read a range of bytes from the file instead of the entire file. Both `start` and `end` are inclusive and @@ -3233,8 +3233,8 @@ to read a complete file into memory. The additional read overhead can vary broadly on different systems and depends on the type of file being read. If the file type is not a regular file (a pipe for instance) and Node.js is unable to determine an actual file size, each read -operation will load on 64 KB of data. For regular files, each read will process -512 KB of data. +operation will load on 64 KiB of data. For regular files, each read will process +512 KiB of data. For applications that require as-fast-as-possible reading of file contents, it is better to use `fs.read()` directly and for application code to manage diff --git a/doc/api/http.md b/doc/api/http.md index db77df49715618..89980f7b86cf07 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -2959,7 +2959,7 @@ changes: * `maxHeaderSize` {number} Optionally overrides the value of [`--max-http-header-size`][] for requests received by this server, i.e. the maximum length of request headers in bytes. - **Default:** 16384 (16 KB). + **Default:** 16384 (16 KiB). * `noDelay` {boolean} If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. **Default:** `false`. @@ -3115,7 +3115,7 @@ added: * {number} Read-only property specifying the maximum allowed size of HTTP headers in bytes. -Defaults to 16 KB. Configurable using the [`--max-http-header-size`][] CLI +Defaults to 16 KiB. Configurable using the [`--max-http-header-size`][] CLI option. This can be overridden for servers and client requests by passing the @@ -3190,7 +3190,7 @@ changes: * `maxHeaderSize` {number} Optionally overrides the value of [`--max-http-header-size`][] (the maximum length of response headers in bytes) for responses received from the server. - **Default:** 16384 (16 KB). + **Default:** 16384 (16 KiB). * `method` {string} A string specifying the HTTP request method. **Default:** `'GET'`. * `path` {string} Request path. Should include query string if any. diff --git a/doc/api/stream.md b/doc/api/stream.md index 4aa0fdc7454395..b96ce677e855ed 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -1628,7 +1628,7 @@ If the loop terminates with a `break`, `return`, or a `throw`, the stream will be destroyed. In other terms, iterating over a stream will consume the stream fully. The stream will be read in chunks of size equal to the `highWaterMark` option. In the code example above, data will be in a single chunk if the file -has less then 64 KB of data because no `highWaterMark` option is provided to +has less then 64 KiB of data because no `highWaterMark` option is provided to [`fs.createReadStream()`][]. ##### `readable.iterator([options])` @@ -2891,7 +2891,7 @@ changes: * `options` {Object} * `highWaterMark` {number} Buffer level when [`stream.write()`][stream-write] starts returning `false`. **Default:** - `16384` (16 KB), or `16` for `objectMode` streams. + `16384` (16 KiB), or `16` for `objectMode` streams. * `decodeStrings` {boolean} Whether to encode `string`s passed to [`stream.write()`][stream-write] to `Buffer`s (with the encoding specified in the [`stream.write()`][stream-write] call) before passing @@ -3264,7 +3264,7 @@ changes: * `options` {Object} * `highWaterMark` {number} The maximum [number of bytes][hwm-gotcha] to store in the internal buffer before ceasing to read from the underlying resource. - **Default:** `16384` (16 KB), or `16` for `objectMode` streams. + **Default:** `16384` (16 KiB), or `16` for `objectMode` streams. * `encoding` {string} If specified, then buffers will be decoded to strings using the specified encoding. **Default:** `null`. * `objectMode` {boolean} Whether this stream should behave diff --git a/doc/api/util.md b/doc/api/util.md index 6f320127d3e122..6c0404765a23f3 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -532,7 +532,7 @@ changes: description: The `depth` default changed to `20`. - version: v11.0.0 pr-url: https://github.com/nodejs/node/pull/22756 - description: The inspection output is now limited to about 128 MB. Data + description: The inspection output is now limited to about 128 MiB. Data above that size will not be fully inspected. - version: v10.12.0 pr-url: https://github.com/nodejs/node/pull/22788 @@ -774,7 +774,7 @@ console.log(thousand, million, bigNumber, bigDecimal); ``` `util.inspect()` is a synchronous method intended for debugging. Its maximum -output length is approximately 128 MB. Inputs that result in longer output will +output length is approximately 128 MiB. Inputs that result in longer output will be truncated. ### Customizing `util.inspect` colors diff --git a/doc/contributing/investigating-native-memory-leaks.md b/doc/contributing/investigating-native-memory-leaks.md index f9345b092737fa..17389c6bc91a7e 100644 --- a/doc/contributing/investigating-native-memory-leaks.md +++ b/doc/contributing/investigating-native-memory-leaks.md @@ -101,7 +101,7 @@ Leaks can be introduced in native addons and the following is a simple example leak based on the "Hello world" addon from [node-addon-examples](https://github.com/nodejs/node-addon-examples). -In this example, a loop which allocates approximately 1 MB of memory and never +In this example, a loop which allocates approximately 1 MiB of memory and never frees it has been added: ```cpp diff --git a/doc/node.1 b/doc/node.1 index 6d1cc282764a0a..bcc5ae7b5cf3e2 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -270,7 +270,7 @@ This flag is inherited from V8 and is subject to change upstream. It may disappear in a non-semver-major release. . .It Fl -max-http-header-size Ns = Ns Ar size -Specify the maximum size of HTTP headers in bytes. Defaults to 16 KB. +Specify the maximum size of HTTP headers in bytes. Defaults to 16 KiB. . .It Fl -napi-modules This option is a no-op. diff --git a/lib/assert.js b/lib/assert.js index bbd3c283c5f0e9..2c7cf369a87af2 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -213,7 +213,7 @@ function getCode(fd, line, column) { let lines = 0; // Prevent blocking the event loop by limiting the maximum amount of // data that may be read. - let maxReads = 32; // bytesPerRead * maxReads = 512 kb + let maxReads = 32; // bytesPerRead * maxReads = 512 KiB const bytesPerRead = 16384; // Use a single buffer up front that is reused until the call site is found. let buffer = Buffer.allocUnsafe(bytesPerRead); diff --git a/lib/fs.js b/lib/fs.js index 9cda2047925f73..ae9405dfa13df2 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -2866,7 +2866,7 @@ function lazyLoadStreams() { /** * Creates a readable stream with a default `highWaterMark` - * of 64 kb. + * of 64 KiB. * @param {string | Buffer | URL} path * @param {string | { * flags?: string; diff --git a/lib/internal/crypto/scrypt.js b/lib/internal/crypto/scrypt.js index 49e5b0624e1ae7..0c780b098d77b2 100644 --- a/lib/internal/crypto/scrypt.js +++ b/lib/internal/crypto/scrypt.js @@ -41,7 +41,7 @@ const defaults = { N: 16384, r: 8, p: 1, - maxmem: 32 << 20, // 32 MB, matches SCRYPT_MAX_MEM. + maxmem: 32 << 20, // 32 MiB, matches SCRYPT_MAX_MEM. }; function scrypt(password, salt, keylen, options, callback = defaults) { diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 04a752ea6522dc..150b9608bd0f58 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -990,7 +990,7 @@ E('ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY', 'Cannot overwrite symlink in subdirectory of self', SystemError); E('ERR_FS_CP_UNKNOWN', 'Cannot copy an unknown file type', SystemError); E('ERR_FS_EISDIR', 'Path is a directory', SystemError); -E('ERR_FS_FILE_TOO_LARGE', 'File size (%s) is greater than 2 GB', RangeError); +E('ERR_FS_FILE_TOO_LARGE', 'File size (%s) is greater than 2 GiB', RangeError); E('ERR_FS_INVALID_SYMLINK_TYPE', 'Symlink type must be one of "dir", "file", or "junction". Received "%s"', Error); // Switch to TypeError. The current implementation does not seem right diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 61670011372bb7..e570b42da88204 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -122,7 +122,7 @@ const kMaximumCopyMode = COPYFILE_EXCL | COPYFILE_FICLONE | COPYFILE_FICLONE_FORCE; -// Most platforms don't allow reads or writes >= 2 GB. +// Most platforms don't allow reads or writes >= 2 GiB. // See https://github.com/libuv/libuv/pull/1501. const kIoMaxLength = 2 ** 31 - 1; diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 5fc533741d7c8d..34bb11e7d7122c 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -97,11 +97,11 @@ static int StartDebugSignalHandler() { pthread_attr_t attr; CHECK_EQ(0, pthread_attr_init(&attr)); #if defined(PTHREAD_STACK_MIN) && !defined(__FreeBSD__) - // PTHREAD_STACK_MIN is 2 KB with musl libc, which is too small to safely - // receive signals. PTHREAD_STACK_MIN + MINSIGSTKSZ is 8 KB on arm64, which + // PTHREAD_STACK_MIN is 2 KiB with musl libc, which is too small to safely + // receive signals. PTHREAD_STACK_MIN + MINSIGSTKSZ is 8 KiB on arm64, which // is the musl architecture with the biggest MINSIGSTKSZ so let's use that // as a lower bound and let's quadruple it just in case. The goal is to avoid - // creating a big 2 or 4 MB address space gap (problematic on 32 bits + // creating a big 2 or 4 MiB address space gap (problematic on 32 bits // because of fragmentation), not squeeze out every last byte. // Omitted on FreeBSD because it doesn't seem to like small stacks. const size_t stack_size = std::max(static_cast(4 * 8192), diff --git a/test/common/README.md b/test/common/README.md index f1789c1577d8ca..d8c8d55ec97192 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -59,7 +59,7 @@ On non-Windows platforms, this always returns `true`. ### `createZeroFilledFile(filename)` -Creates a 10 MB file of all null characters. +Creates a 10 MiB file of all null characters. ### `enoughTestMem` diff --git a/test/parallel/test-crypto-scrypt.js b/test/parallel/test-crypto-scrypt.js index 7b695a36f2b5a4..76c06b4a49eaf2 100644 --- a/test/parallel/test-crypto-scrypt.js +++ b/test/parallel/test-crypto-scrypt.js @@ -24,7 +24,7 @@ const good = [ }, // Test vectors from https://tools.ietf.org/html/rfc7914#page-13 that // should pass. Note that the test vector with N=1048576 is omitted - // because it takes too long to complete and uses over 1 GB of memory. + // because it takes too long to complete and uses over 1 GiB of memory. { pass: '', salt: '', diff --git a/test/parallel/test-fs-util-validateoffsetlength.js b/test/parallel/test-fs-util-validateoffsetlength.js index 28e087d33aec7b..bda20f86683723 100644 --- a/test/parallel/test-fs-util-validateoffsetlength.js +++ b/test/parallel/test-fs-util-validateoffsetlength.js @@ -50,7 +50,7 @@ const { ); } -// Most platforms don't allow reads or writes >= 2 GB. +// Most platforms don't allow reads or writes >= 2 GiB. // See https://github.com/libuv/libuv/pull/1501. const kIoMaxLength = 2 ** 31 - 1; diff --git a/test/parallel/test-http2-max-session-memory-leak.js b/test/parallel/test-http2-max-session-memory-leak.js index b066ca80bc5eab..476c605783c81c 100644 --- a/test/parallel/test-http2-max-session-memory-leak.js +++ b/test/parallel/test-http2-max-session-memory-leak.js @@ -9,7 +9,7 @@ const http2 = require('http2'); // mechanism. const bodyLength = 8192; -const maxSessionMemory = 1; // 1 MB +const maxSessionMemory = 1; // 1 MiB const requestCount = 1000; const server = http2.createServer({ maxSessionMemory }); diff --git a/test/parallel/test-tls-securepair-leak.js b/test/parallel/test-tls-securepair-leak.js index 4cd927d64ac088..98bdcde76ec034 100644 --- a/test/parallel/test-tls-securepair-leak.js +++ b/test/parallel/test-tls-securepair-leak.js @@ -20,9 +20,9 @@ setImmediate(() => { global.gc(); const after = process.memoryUsage().external; - // It's not an exact science but a SecurePair grows .external by about 45 kB. + // It's not an exact science but a SecurePair grows .external by about 45 KiB. // Unless AdjustAmountOfExternalAllocatedMemory() is called on destruction, - // 10,000 instances make it grow by well over 400 MB. Allow for some slop + // 10,000 instances make it grow by well over 400 MiB. Allow for some slop // because objects like buffers also affect the external limit. assert(after - before < 25 << 20); }); diff --git a/tools/compress_json.py b/tools/compress_json.py index dfe64063aeaead..fdb3d536cf3e3c 100644 --- a/tools/compress_json.py +++ b/tools/compress_json.py @@ -21,7 +21,7 @@ # To make decompression a little easier, we prepend the compressed data # with the size of the uncompressed data as a 24 bits BE unsigned integer. - assert len(text) < 1 << 24, 'Uncompressed JSON must be < 16 MB.' + assert len(text) < 1 << 24, 'Uncompressed JSON must be < 16 MiB.' data = struct.pack('>I', len(text))[1:4] + data step = 20 diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py index d173bf22990116..3db3771ac97855 100644 --- a/tools/gyp/pylib/gyp/generator/ninja.py +++ b/tools/gyp/pylib/gyp/generator/ninja.py @@ -2112,8 +2112,8 @@ class MEMORYSTATUSEX(ctypes.Structure): ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat)) # VS 2015 uses 20% more working set than VS 2013 and can consume all RAM - # on a 64 GB machine. - mem_limit = max(1, stat.ullTotalPhys // (5 * (2 ** 30))) # total / 5GB + # on a 64 GiB machine. + mem_limit = max(1, stat.ullTotalPhys // (5 * (2 ** 30))) # total / 5GiB hard_cap = max(1, int(os.environ.get("GYP_LINK_CONCURRENCY_MAX", 2 ** 32))) return min(mem_limit, hard_cap) elif sys.platform.startswith("linux"): diff --git a/tools/inspector_protocol/encoding/encoding.h b/tools/inspector_protocol/encoding/encoding.h index 08596e9e1e43f0..14432484d55b9d 100644 --- a/tools/inspector_protocol/encoding/encoding.h +++ b/tools/inspector_protocol/encoding/encoding.h @@ -167,7 +167,7 @@ namespace cbor { // must use a 32 bit wide length. // - At the top level, a message must be an indefinite length map // wrapped by an envelope. -// - Maximal size for messages is 2^32 (4 GB). +// - Maximal size for messages is 2^32 (4 GiB). // - For scalars, we support only the int32_t range, encoded as // UNSIGNED/NEGATIVE (major types 0 / 1). // - UTF16 strings, including with unbalanced surrogate pairs, are encoded diff --git a/tools/inspector_protocol/lib/encoding_h.template b/tools/inspector_protocol/lib/encoding_h.template index 2c6cfc10d594c2..4d9874bfbd5cb4 100644 --- a/tools/inspector_protocol/lib/encoding_h.template +++ b/tools/inspector_protocol/lib/encoding_h.template @@ -176,7 +176,7 @@ namespace cbor { // must use a 32 bit wide length. // - At the top level, a message must be an indefinite length map // wrapped by an envelope. -// - Maximal size for messages is 2^32 (4 GB). +// - Maximal size for messages is 2^32 (4 GiB). // - For scalars, we support only the int32_t range, encoded as // UNSIGNED/NEGATIVE (major types 0 / 1). // - UTF16 strings, including with unbalanced surrogate pairs, are encoded diff --git a/tools/msvs/install_tools/install_tools.bat b/tools/msvs/install_tools/install_tools.bat index 46ba93c8b890c9..18f92a981003f2 100644 --- a/tools/msvs/install_tools/install_tools.bat +++ b/tools/msvs/install_tools/install_tools.bat @@ -13,7 +13,7 @@ echo This script will install Python and the Visual Studio Build Tools, necessar echo to compile Node.js native modules. Note that Chocolatey and required Windows echo updates will also be installed. echo. -echo This will require about 3 Gb of free disk space, plus any space necessary to +echo This will require about 3 GiB of free disk space, plus any space necessary to echo install Windows updates. This will take a while to run. echo. echo Please close all open programs for the duration of the installation. If the diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi index 365860ef947ff0..e85f6709e7a45c 100644 --- a/tools/v8_gypfiles/features.gypi +++ b/tools/v8_gypfiles/features.gypi @@ -253,7 +253,7 @@ # will fail. 'v8_enable_webassembly%': 1, - # Enable advanced BigInt algorithms, costing about 10-30 KB binary size + # Enable advanced BigInt algorithms, costing about 10-30 KiB binary size # depending on platform. 'v8_advanced_bigint_algorithms%': 1 },