Jim Huang
99e071cf2c
Link with -lrt for older glibc
...
Quoted from Linux Programmer's Manual (2017-09-15):
#include <time.h>
int clock_gettime(clockid_t clk_id, struct timespec *tp);
Link with -lrt (only for glibc versions before 2.17).
This patch adds additional checks for librt availability and append
target_link_libraries accordingly. librt is absent on macOS.
Fixed #139
2019-08-24 21:24:56 +08:00
Daan
7f29dec44a
Merge pull request #134 from kile0/kile/vs2019
...
Add VS solutions that can leverage the MSVC 2019 runtime
2019-08-21 16:00:03 -07:00
Kirsten Lee
6165177cb1
provide a set of solutions that use the vs2019 vcruntime
2019-08-20 16:19:16 -07:00
Daan
e2b4127a16
Merge pull request #129 from devnexen/linux_build_fix
...
linux build correction
2019-08-19 19:04:48 -07:00
David Carlier
b0003cb101
linux build correction
...
MAP_HUGE_2MB is linux specific and the related header
is not automatically included.
2019-08-14 15:07:13 +01:00
Daan
cbc826beb5
Merge pull request #126 from JeanMiK/fix_C++_signature_of_mi_is_in_heap_region
...
Fix C++ signature of function mi_is_in_heap_region
2019-08-12 08:45:04 -07:00
JeanMiK
3f43cbe6a1
Fix C++ signature of function mi_is_in_heap_region
...
Original code did not compile with MI_USE_CXX=ON as function
mi_is_in_heap_region was declared noexcept through macro mi_attr_noexcept
but defined without specification, i.e. implicitly with noexception(false)
Just adding the macro in the definition is enough to fix the issue
(tested with gcc 8.3.5)
2019-08-12 12:43:01 +02:00
daan
a73daf1804
avoid mod operation in region allocation and limit extension
2019-08-11 08:54:32 -07:00
daan
756f4b2724
improve bit scanning code in region allocation
2019-08-11 08:48:19 -07:00
daan
b74f9b979f
update documentation
2019-08-10 17:27:07 -07:00
Daan
6bc6628ad4
Update readme.md
...
Start documenting releases
2019-08-10 17:12:05 -07:00
Daan
f7ed954c7c
Update readme.md
...
Notes on dynamic overriding; document environment options
2019-08-10 17:07:40 -07:00
daan
74a5c17178
update order of options; make eager_region_commit 0 on windows by default
v1.0.6
2019-08-10 15:44:55 -07:00
daan
2fee6f98d7
Merge branch 'master' into dev
2019-08-10 15:23:43 -07:00
daan
8ae2492eee
fix arguments for the heap visitor function, issue #124
2019-08-10 10:14:01 -07:00
Daan
5b4c4ac959
Merge pull request #117 from devnexen/darwin_anon_monitor
...
darwin, tracking anonymous page lifetime.
2019-08-10 09:58:35 -07:00
daan
ccc78302bf
fix double assignment ( #125 , by @ebudai)
2019-08-10 09:53:00 -07:00
David Carlier
82ab9b4bd6
tracking anonymous page lifetime on macOS.
...
this platform allows to tag them per application up to 255.
2019-07-27 23:05:05 +01:00
Daan
70648635c6
Merge pull request #113 from jserv/fix-incorrect-path
...
Fix path name in documentation about macOS
2019-07-22 09:51:43 -07:00
Daan
80400c9946
Merge pull request #111 from jserv/avoid-strlen-in-loop
...
Avoid using strlen function in loop
2019-07-22 09:51:02 -07:00
Daan
cf8f46c263
Merge pull request #110 from jserv/options-branch-predict-hints
...
Add branch prediction hint for mi_option_get
2019-07-22 09:49:44 -07:00
Daan
ce241fd339
Merge pull request #106 from caixiangyue/fix-typo-719
...
fix typo
2019-07-22 09:44:07 -07:00
Daan
ade118e23d
Merge pull request #88 from jserv/gcc-builtin-umul-overflow
...
Use checked unsigned multiplication extension of GCC/Clang
2019-07-22 09:28:38 -07:00
Jim Huang
146a753d1e
Fix path name in documentation about macOS
2019-07-22 04:45:40 +08:00
Jim Huang
c382c72cf2
Avoid using strlen function in loop
2019-07-21 22:30:42 +08:00
Jim Huang
1ffa48cc61
Add branch prediction hint for mi_option_get
...
mi_option_get is called frequently in stress tests, and the patch adds
extra hint to the compiler to emit instructions that will cause branch
prediction to favour the "likely" side of a jump instruction.
2019-07-21 21:42:00 +08:00
caixiangyue
a215049b4a
fix typo
2019-07-19 16:23:14 +08:00
daan
f646cc925d
add is_in_heap_region function
2019-07-17 15:37:36 -07:00
daan
8390c46503
disable JustMyCode debugging and whole program optimization as it seems to cause compiler errors sometimes
v1.0.5
2019-07-15 17:38:16 -07:00
daan
72d8608333
avoid thread over-allocation on initial region allocations
2019-07-15 17:35:43 -07:00
daan
7ea9cf8d1f
add region collection
2019-07-15 14:53:03 -07:00
daan
89bdcd43b2
fix bit search index
2019-07-15 14:33:15 -07:00
daan
08e0f14c2a
document experimental options
2019-07-15 14:32:54 -07:00
Jim Huang
afd981d008
Use checked unsigned multiplication extension of GCC/Clang
...
Most processors have carry flags which they set on addition overflow, so
it is a good idea to access them whenever possible. Most of them also
have widening multiply instructions that can be used to detect overflow
of the non-widening version. Both GCC and Clang offer a way to detect an
overflow for security critical applications.
Reference:
https://clang.llvm.org/docs/LanguageExtensions.html#checked-arithmetic-builtins
2019-07-16 05:28:59 +08:00
daan
ae1794a852
remove accidental test in cmake
2019-07-15 13:36:12 -07:00
daan
26ef67a45c
fix visual studio project
2019-07-15 13:22:15 -07:00
daan
ea9dbd1036
set better default options for performance
2019-07-15 13:19:26 -07:00
daan
0196622fff
Merge branch 'dev' into dev-exp
2019-07-15 11:10:12 -07:00
Daan
ad45dbf0e5
Merge pull request #32 from jedisct1/wasm
...
Port to WebAssembly
2019-07-15 11:03:46 -07:00
Daan
60e9d3f69d
Merge pull request #81 from devnexen/mac_large_page_2mb
...
initial support of 2MB pages on Mac
v1.0.4
2019-07-15 10:56:53 -07:00
daan
d706109b35
don't decommit/reset parts of a region when using large os pages
2019-07-15 10:04:43 -07:00
daan
beef7a8c70
Merge branch 'dev' into dev-exp
2019-07-15 09:47:09 -07:00
daan
7ba6192dd5
always pass commit flag to large page allocation on windows
2019-07-15 09:46:58 -07:00
daan
08c873c250
Merge branch 'dev' into dev-exp
2019-07-14 20:35:01 -07:00
daan
c4426e1555
add sized delete to windows override
2019-07-14 20:28:33 -07:00
daan
461b8aed80
more complete C++ support for compliance and performance
2019-07-14 19:56:33 -07:00
Frank Denis
9129ab0f64
Port to WebAssembly
2019-07-15 02:22:41 +02:00
daan
8dc0b5345b
Merge branch 'dev' into dev-exp
2019-07-14 16:50:38 -07:00
daan
49ceb4d018
refactor delayed_free code
2019-07-14 16:48:53 -07:00
daan
5ad2effb39
use standard compliant compilation of the thread_free atomic field
2019-07-14 16:20:27 -07:00
daan
2cf419c9bc
Merge branch 'master' into dev
2019-07-14 14:50:39 -07:00
daan
a6aa905731
make sure older cmake versions work for build
2019-07-14 14:47:59 -07:00
Daan
b09af48a68
Merge pull request #93 from JulianATA/dev-exp
...
Fix typo numbes -> number
2019-07-14 14:33:37 -07:00
Daan
36a16ca7eb
Merge pull request #99 from linkwk7/fix_typo_in_comments
...
Fix typo in comment
2019-07-14 14:33:12 -07:00
daan
adf65a100e
be less aggressive in page reuse to reduce memory footprint
2019-07-14 14:13:47 -07:00
daan
672506a3b3
merged with dev-win
2019-07-14 12:57:47 -07:00
daan
f93a49446f
Merge branch 'dev' into dev-win
2019-07-14 12:55:52 -07:00
daan
e60a5db908
fix cache eviction of smaller segments
2019-07-14 12:52:58 -07:00
daan
89b7ffa8ed
link DiscardVirtualMemory dynamically as it is not supported on every windows
2019-07-13 08:12:16 -07:00
daan
84a292538c
merge with medium pages
2019-07-12 20:39:29 -07:00
daan
a927c07de9
merge medium pages
2019-07-12 20:27:56 -07:00
daan
42cf5e1580
reintroduce support for medium size pages
2019-07-12 20:11:39 -07:00
linkwk7
d4eabf33b6
Fix typo in comments
2019-07-12 22:05:07 +08:00
daan
8a6b474fa0
merge from dev
2019-07-11 16:32:11 -07:00
daan
a932e43650
experiment with larger small pages
2019-07-11 15:44:37 -07:00
daan
9e9208eae8
Merge branch 'dev' into dev-win
2019-07-11 15:22:09 -07:00
daan
1fdb4b288f
more eager handling of non-local frees
2019-07-11 15:21:57 -07:00
daan
1377b26b0a
Merge branch 'dev' into dev-win
2019-07-11 13:31:02 -07:00
daan
72a39c0bb1
initial fix for delayed freeing of huge pages transferred between threads
2019-07-11 13:30:40 -07:00
daan
f844665c9f
merge from dev-win
2019-07-10 22:57:37 -07:00
daan
c555e09504
Merge branch 'dev' into dev-win
2019-07-10 22:48:20 -07:00
daan
4e6249fd12
azure pipelines better display name, fix c++ compiler
2019-07-10 22:44:36 -07:00
daan
3bef93698b
remove publish test, add clang config
2019-07-10 22:41:53 -07:00
daan
6577e0e9fd
add test results task to azure pipeline
2019-07-10 22:35:39 -07:00
daan
67bed283aa
fix azure pipeline script; remove mapping value
2019-07-10 22:23:18 -07:00
daan
9fabd1ea01
fix azure pipeline script
2019-07-10 22:22:44 -07:00
daan
a5179d1125
fix azure pipeline script
2019-07-10 22:21:08 -07:00
daan
df8f9fc59c
Add test to build pipeline
2019-07-10 22:13:34 -07:00
daan
34a4de01b1
add Visual Studio support for new stress target
2019-07-10 21:59:44 -07:00
daan
12d3297db5
add allocator stress test to the test targets
2019-07-10 21:52:28 -07:00
daan
da0fb1e53f
merge dev-win
2019-07-10 20:50:32 -07:00
daan
6deea16d2d
add segment count to internal statistics
2019-07-10 19:54:46 -07:00
daan
ef4359b272
fix abondoned segment counter, and free list adding
2019-07-10 16:33:49 -07:00
daan
b80b0837ab
Merge branch 'dev-win' into dev-exp
2019-07-10 07:50:26 -07:00
daan
5b6f4ecc12
fix compilation warning
2019-07-10 07:50:04 -07:00
daan
224951695a
enable non eager commit
2019-07-10 07:24:56 -07:00
daan
46a9e51f74
enable non eager-commit flag
2019-07-10 07:17:21 -07:00
daan
a6c5e2cffd
Merge branch 'master' into dev
2019-07-09 23:49:29 -07:00
daan
95afe453f4
fix compilation warning on windows, issue #94
2019-07-09 23:49:12 -07:00
daan
d8c47bfed2
ensure commit of reused cached segments
2019-07-09 23:37:59 -07:00
daan
3192ca4682
merge with dev-win
2019-07-09 23:34:17 -07:00
daan
3009a7b1fe
support non- eager_commit; on larson reduces commit charge 10x, but other benchmarks often see no improvement
2019-07-09 21:34:56 -07:00
daan
2ef1f1df94
Merge branch 'dev' into dev-win
2019-07-09 21:05:30 -07:00
daan
09195b6a5f
add commit charge statistics on windows
2019-07-09 21:05:09 -07:00
daan
873d07d89d
merge with dev
2019-07-09 20:44:58 -07:00
daan
897d47a0fb
Merge branch 'dev' into dev-win
2019-07-09 20:35:52 -07:00
daan
ad9db3a633
fix leak of huge segments in caches
v1.0.3
2019-07-09 20:35:07 -07:00
daan
ee3f2059dc
fix leak in segment cache freeing
2019-07-09 20:32:54 -07:00
daan
0314373d93
add reset_decommit, reset_discard options; maintain more statistics
2019-07-09 20:24:00 -07:00
daan
2cfdbc2cbb
fix leak in segment cache freeing
2019-07-09 20:22:53 -07:00