Skip to content

Commit f515b80

Browse files
committed
update documentation on options
1 parent 6ff2312 commit f515b80

File tree

2 files changed

+33
-21
lines changed

2 files changed

+33
-21
lines changed

doc/mimalloc-doc.h

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -802,20 +802,32 @@ typedef enum mi_option_e {
802802
mi_option_show_errors, ///< Print error messages to `stderr`.
803803
mi_option_show_stats, ///< Print statistics to `stderr` when the program is done.
804804
mi_option_verbose, ///< Print verbose messages to `stderr`.
805+
805806
// the following options are experimental
806807
mi_option_eager_commit, ///< Eagerly commit segments (4MiB) (enabled by default).
807-
mi_option_eager_region_commit, ///< Eagerly commit large (256MiB) memory regions (enabled by default, except on Windows)
808808
mi_option_large_os_pages, ///< Use large OS pages (2MiB in size) if possible
809809
mi_option_reserve_huge_os_pages, ///< The number of huge OS pages (1GiB in size) to reserve at the start of the program.
810810
mi_option_reserve_huge_os_pages_at, ///< Reserve huge OS pages at node N.
811-
mi_option_segment_cache, ///< The number of segments per thread to keep cached.
811+
mi_option_reserve_os_memory, ///< Reserve specified amount of OS memory at startup, e.g. "1g" or "512m".
812+
mi_option_segment_cache, ///< The number of segments per thread to keep cached (0).
812813
mi_option_page_reset, ///< Reset page memory after \a mi_option_reset_delay milliseconds when it becomes free.
814+
mi_option_abandoned_page_reset, //< Reset free page memory when a thread terminates.
815+
mi_option_use_numa_nodes, ///< Pretend there are at most N NUMA nodes; Use 0 to use the actual detected NUMA nodes at runtime.
816+
mi_option_eager_commit_delay, ///< the first N segments per thread are not eagerly committed (=1).
817+
mi_option_os_tag, ///< OS tag to assign to mimalloc'd memory
818+
mi_option_limit_os_alloc, ///< If set to 1, do not use OS memory for allocation (but only pre-reserved arenas)
819+
820+
// v1.x specific options
821+
mi_option_eager_region_commit, ///< Eagerly commit large (256MiB) memory regions (enabled by default, except on Windows)
813822
mi_option_segment_reset, ///< Experimental
814823
mi_option_reset_delay, ///< Delay in milli-seconds before resetting a page (100ms by default)
815-
mi_option_use_numa_nodes, ///< Pretend there are at most N NUMA nodes
816824
mi_option_reset_decommits, ///< Experimental
817-
mi_option_eager_commit_delay, ///< Experimental
818-
mi_option_os_tag, ///< OS tag to assign to mimalloc'd memory
825+
826+
// v2.x specific options
827+
mi_option_allow_decommit, ///< Enable decommitting memory (=on)
828+
mi_option_decommit_delay, ///< Decommit page memory after N milli-seconds delay (25ms).
829+
mi_option_segment_decommit_delay, ///< Decommit large segment memory after N milli-seconds delay (500ms).
830+
819831
_mi_option_last
820832
} mi_option_t;
821833

include/mimalloc.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -296,30 +296,30 @@ mi_decl_export int mi_reserve_huge_os_pages(size_t pages, double max_secs, size
296296

297297

298298
// ------------------------------------------------------
299-
// Options, all `false` by default
299+
// Options
300300
// ------------------------------------------------------
301301

302302
typedef enum mi_option_e {
303303
// stable options
304-
mi_option_show_errors,
305-
mi_option_show_stats,
306-
mi_option_verbose,
307-
// the following options are experimental
308-
mi_option_eager_commit,
309-
mi_option_eager_region_commit,
304+
mi_option_show_errors, // print error messages
305+
mi_option_show_stats, // print statistics on termination
306+
mi_option_verbose, // print verbose messages
307+
// the following options are experimental (see src/options.h)
308+
mi_option_eager_commit,
309+
mi_option_eager_region_commit,
310310
mi_option_reset_decommits,
311-
mi_option_large_os_pages, // implies eager commit
312-
mi_option_reserve_huge_os_pages,
313-
mi_option_reserve_huge_os_pages_at,
314-
mi_option_reserve_os_memory,
315-
mi_option_segment_cache,
316-
mi_option_page_reset,
317-
mi_option_abandoned_page_reset,
311+
mi_option_large_os_pages, // use large (2MiB) OS pages, implies eager commit
312+
mi_option_reserve_huge_os_pages, // reserve N huge OS pages (1GiB) at startup
313+
mi_option_reserve_huge_os_pages_at, // reserve huge OS pages at a specific NUMA node
314+
mi_option_reserve_os_memory, // reserve specified amount of OS memory at startup
315+
mi_option_segment_cache,
316+
mi_option_page_reset,
317+
mi_option_abandoned_page_reset,
318318
mi_option_segment_reset,
319319
mi_option_eager_commit_delay,
320320
mi_option_reset_delay,
321-
mi_option_use_numa_nodes,
322-
mi_option_limit_os_alloc,
321+
mi_option_use_numa_nodes, // 0 = use available numa nodes, otherwise use at most N nodes.
322+
mi_option_limit_os_alloc, // 1 = do not use OS memory for allocation (but only reserved arenas)
323323
mi_option_os_tag,
324324
mi_option_max_errors,
325325
mi_option_max_warnings,

0 commit comments

Comments
 (0)