<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in compute_size_class_config.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>ebff66be - [scudo] [standalone] [NFC] clang-format code.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/scudo/standalone/tools/compute_size_class_config.cpp#ebff66be</link>
        <description>[scudo] [standalone] [NFC] clang-format code.clang-format the scudo standalone codebase.Reviewed By: cryptoadDifferential Revision: https://reviews.llvm.org/D93056

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/scudo/standalone/tools/compute_size_class_config.cpp</description>
        <pubDate>Thu, 10 Dec 2020 20:16:45 +0000</pubDate>
        <dc:creator>Mitch Phillips &lt;31459023+hctim@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>041547eb - scudo: Table driven size classes for Android allocator.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/scudo/standalone/tools/compute_size_class_config.cpp#041547eb</link>
        <description>scudo: Table driven size classes for Android allocator.Add an optional table lookup after the existing logarithm computationfor MidSize &lt; Size &lt;= MaxSize during size -&gt; class lookups. The lookup isO(1) due to indexing a precomputed (via constexpr) table based on a sizetable. Switch to this approach for the Android size class maps.Other approaches considered:- Binary search was found to have an unacceptable (~30%) performance cost.- An approach using NEON instructions (see older version of D73824) was found  to be slightly slower than this approach on newer SoCs but significantly  slower on older ones.By selecting the values in the size tables to minimize wastage (for example,by passing the malloc_info output of a target program to the includedcompute_size_class_config program), we can increase the density of allocationsat a small (~0.5% on bionic malloc_sql_trace as measured using an identitytable) performance cost.Reduces RSS on specific Android processes as follows (KB):                             Before  Afterzygote (median of 50 runs)    26836  26792 (-0.2%)zygote64 (median of 50 runs)  30384  30076 (-1.0%)dex2oat (median of 3 runs)   375792 372952 (-0.8%)I also measured the amount of whole-system idle dirty heap on Android byrebooting the system and then running the following script repeatedly untilthe results were stable:for i in $(seq 1 50); do grep -A5 scudo: /proc/*/smaps | grep Pss: | cut -d: -f2 | awk &apos;{s+=$1} END {print s}&apos; ; sleep 1; doneI did this 3 times both before and after this change and the results were:Before: 365650, 356795, 372663After:  344521, 356328, 342589These results are noisy so it is hard to make a definite conclusion, butthere does appear to be a significant effect.On other platforms, increase the sizes of all size classes by a fixed offsetequal to the size of the allocation header. This has also been found to improvedensity, since it is likely for allocation sizes to be a power of 2, whichwould otherwise waste space by pushing the allocation into the next size class.Differential Revision: https://reviews.llvm.org/D73824

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/scudo/standalone/tools/compute_size_class_config.cpp</description>
        <pubDate>Wed, 05 Feb 2020 03:50:25 +0000</pubDate>
        <dc:creator>Peter Collingbourne &lt;peter@pcc.me.uk&gt;</dc:creator>
    </item>
</channel>
</rss>
