- 12 Apr, 2023 15 commits
-
-
Francois Gouget authored
The first test would succeed whether the API touched the buffer or not, while the second one only succeeds if the API sets the first character to 0. So keeping the second test is sufficient.
-
Francois Gouget authored
-
Francois Gouget authored
ERROR_INTERNET_SEC_CERT_WEAK_SIGNATURE is not supported on 1507, broken on 1607 and works as expected on 1709+. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54815
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Tatsuyuki Ishi authored
Currently, the free list consists of a "small list" for sizes below 256, which are linearly spaced, and a "large list" which is manually split into a few chunks. This patch replaces it with a single log-linear policy, while expanding the range the large list covers. The old implementation had issues when a lot of large allocations happened. In this case, all the allocations went in the last catch-all bucket in the "large list", and what happens is: 1. The linked list grew in size over time, causing searching cost to skyrocket. 2. With the first-fit allocation policy, fragmentation was also making the problem worse. The new bucketing covers the entire range up until we start allocating large blocks, which will not enter the free list. It also makes the allocation policy closer to best-fit (although not exactly), reducing fragmentation. The increase in number of free lists does incur some cost when it needs to be skipped over, but the improvement in allocation performance outweighs it. For future work, these ideas (mostly from glibc) might or might not benefit performance: - Use an exact best-fit allocation policy. - Add a bitmap for freelist, allowing empty lists to be skipped with a single bit scan. Signed-off-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
-
- 11 Apr, 2023 25 commits
-
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Davide Beatrici authored
-
Davide Beatrici authored
-
Davide Beatrici authored
-
Davide Beatrici authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Piotr Caban authored
-
Santino Mazza authored
-
Santino Mazza authored
-