Commit graph

99 commits

Author SHA1 Message Date
Daan Leijen
8fc8da5d81 use thread local stats for abandoned statistics to reduce contention 2025-02-04 17:54:49 -08:00
daanx
dd1b37c9f8 fix recursive tls access on macOS <= 14 2024-12-22 21:03:03 -08:00
daanx
95aeda4cdd merge subproc stats on delete 2024-12-21 10:53:34 -08:00
daanx
dece8a587b make stats part of a subproc 2024-12-21 10:43:08 -08:00
Daan Leijen
58b726be6f better stats for commit on overcommit systems (by not counting on-demand commit upfront) 2024-12-17 18:57:00 -08:00
daanx
21c05019b7 Merge branch 'dev' into dev3 2024-12-17 17:54:24 -08:00
daanx
617190880d add ajust stats to compensate for double counting 2024-12-17 17:53:34 -08:00
daanx
216c04f8d9 clean up bitmap api 2024-12-13 18:39:03 -08:00
daanx
666c089fc8 revise free reclaim; ensure unown cannot race with a free 2024-12-03 10:51:13 -08:00
daanx
d15e83030e wip: rename arena blocks to slices 2024-11-30 12:16:41 -08:00
daanx
188294a0df wip: bug fixes 2024-11-30 11:12:39 -08:00
daanx
68f5fb2f4b wip: further progress on segment removal; arena allocation 2024-11-29 15:08:06 -08:00
daanx
8ba1879073 add sampling for guarded objects 2024-11-17 00:06:16 -08:00
Daan Leijen
0022802177 commend and make at least 8 tries for reclaim 2024-03-25 15:25:04 -07:00
Daan Leijen
b5665f0eec add full block_size and page_start to page info 2024-03-24 14:17:17 -07:00
Daan
027b22aaf2 add arena stats 2024-03-03 09:37:46 -08:00
daanx
c1218883a4 more format specifiers for _mi_vsnprintf 2023-05-19 17:48:07 -07:00
daanx
e10467f673 add libc primitives to reduce dependencies 2023-05-19 11:57:10 -07:00
daanx
a655c28b66 cleanup 2023-04-16 12:29:21 -07:00
daanx
55df1f3a54 more detailed stats, including purges 2023-04-05 09:48:22 -07:00
Daan Leijen
54ad5e76fd fix warnings for issues #709 2023-03-20 11:43:31 -07:00
Daan Leijen
f58357548c restructure header files 2023-03-20 10:37:39 -07:00
Daan Leijen
85a2bb5c60 update process info primitive api 2023-03-20 10:22:45 -07:00
Daan Leijen
69cb30a874 move process info into primitives 2023-03-14 17:15:52 -07:00
Daan Leijen
b3f3a0de3b include psapi.h instead of defining PROCESS_MEMORY_COUNTERS on windows 2023-03-05 22:22:36 -08:00
Daan Leijen
505a14bbd8 cleanup on-demand loading of psapi and bcrypt on windows 2022-12-19 16:50:13 -08:00
Johannes Schindelin
948a0c44df Lazy-load psapi.dll
Let's load the `GetProcessMemoryInfo()` function dynamically. When
needed. If needed.

This is necessary because the start-up cost spent on loading dynamic
libraries is non-negligible.

Note: In contrast to how `os.c` loads libraries and obtains function
addresses, we cannot call `FreeLibrary(hDll)` here because that would
unload the `bcrypt` library before we want to use it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 01:12:59 +01:00
Johannes Schindelin
745a34f475 Fix whitespace
This mostly deletes trailing spaces.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:20 +01:00
Daan Leijen
4b56af178e remove ,not all freed, messag
e from reserved and committed stats (as that is expected at normal process exit)
2022-11-23 10:06:35 -08:00
daan
c4663463d1 add mi_cdecl to functions to avoid errors when compiling with a different calling convention, see PR #592 2022-10-31 12:16:34 -07:00
Daan
e96614961f fix printf format type mismatches (issue #486) 2021-11-06 14:19:14 -07:00
Daan Leijen
10c31f9b41 fix warnings 2021-10-19 15:13:01 -07:00
Daan
9a724889ea refine stat output with new SI units 2021-10-19 12:50:16 -07:00
Daan
75987e4590
Merge pull request #410 from jserv/enforce-binary-prefix
Distinguish SI and Binary Prefixes
2021-10-19 12:28:33 -07:00
Daan
2adf69859b
Merge pull request #418 from devnexen/haiku_build_fix
haiku biuld fix proposal, warning suppression.
2021-10-19 12:19:44 -07:00
Daan
d6bbc08119 prefer monotonic clock for stats (issue #457) 2021-10-18 18:24:59 -07:00
Daan Leijen
679aad0659 update wasm support with emscripten compilation; now using sbrk instead of wasm_memory_grow 2021-10-01 15:05:01 -07:00
David Carlier
a35a7d4f19 haiku biuld fix proposal, warning suppression. 2021-06-19 09:14:43 +00:00
Daan Leijen
4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d9.
2021-06-07 16:47:57 -07:00
Daan Leijen
1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
Jim Huang
0f57425f80 Distinguish SI and Binary Prefixes
SI prefixes [the decimal prefixes] refer strictly to powers of 10. They
should not be used to indicate powers of 2. e.g., one kilobit
represents 1000 bits instead of 1024 bits. IEC 60027‐2 symbols are
formed adding a "i" to the SI symbol (e.g. G + i = Gi).
2021-05-30 20:13:28 +08:00
Jim Huang
5940d3bcce Bump copyright date
Each source file has been changed according to relevant Git activities.
2021-04-24 16:35:11 +00:00
Jim Huang
3402c6cc3f Revise the use of macOS predefined macro
Quoted from "Porting UNIX/Linux Applications to OS X,"[1]
* macro __MACH__ is defined if Mach system calls are supported;
* macro __APPLE__ is defined in any Apple computer.

__MACH__ is not specific to macOS since GNU/Hurd runs on a Mach-based
microkernel (gnumach) [2]. __MACH__ is defined by the compiler,
leading to potential confusions. The solution is just changing the
checked identifier (i.e. __APPLE__), so it is really used only on
macOS.

[1] https://developer.apple.com/library/archive/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html
[2] https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html
2021-04-21 15:24:02 +08:00
Daan Leijen
71ac98ab08 rename <Windows.h> include to <windows.h> for mingw compatibility (see pr #367) 2021-02-22 13:04:11 -08:00
Daan Leijen
a6fa7b083e make current stat the third column instead of first 2021-01-29 14:45:16 -08:00
Daan
fb9c6ce127
Merge pull request #327 from asl/stats-cur
Print current values of stat counters as well.
2021-01-29 14:35:13 -08:00
Daan Leijen
a8b282091f update formatting of statistics 2021-01-29 13:03:06 -08:00
Anton Korobeynikov
765fc9c0ca Unify statistic collection:
- For MI_STAT == 0 no allocation stats are collected
  - For MI_STAT == 1 only aggregated values (across normal, large and huge heaps) are collected
  - For MI_STAT == 1 separate per-bin collection for normal heap is done as well
2020-11-11 11:41:39 +03:00
Anton Korobeynikov
00fb89f771 Rename the field 2020-11-11 11:41:33 +03:00
Anton Korobeynikov
d9a0624529 Print current values of stat counters as well.
For some reasons unknown to me the current values of stat counters are never printed.
This makes is quite hard to use printing during the debugging in the middle
of program run.
2020-11-02 00:24:24 +03:00