Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mat-dev] GarbageCleaner phase code
  • From: "Tsvetkov, Krum" <krum.tsvetkov@xxxxxxx>
  • Date: Wed, 13 Jan 2021 09:59:09 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sap.com; dmarc=pass action=none header.from=sap.com; dkim=pass header.d=sap.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gh+RrE603q6bbA/O3ELmJHI6dcGNrGW2Er/ysPhJa2Q=; b=DUH4qA0BvVcdhe4B7NLJTZwlkQwCtYaATiwUz2B/YfvJsv3TNai9a0Mhi7LW5G2fzgdzUoEqcgDYZ7EBvzDkTPN32+Edfij4f/w5MpGE8eAK8BPij/LWmgY2UcXD2eP83E8us47OwE+jWxTBiTk8Jy6DTi2pruy+/ztvnMNIMOKBie7IFrKZBnp15Cz3evzFKSXLulRp5wRD0kPQIqxJK7Z3QBBtthOxywY43ISBeJyoJgvLBCoUN/EEvH/1j1Os44iWx1bBEDcu12Vev1ydOG+6fy0uCdxOLZ4XgX/JDQlemnU4ZH7sESruxnlbWMn95hXh0LEg5M3KMM4uvk/yNA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mzPoaPeIJU9E+CgvhtMjeJfZUwIUzHSgCh8Lca3I4gvUFPzAq6vFs4vBXIuujU+oI/36yv07AQpkNH9tBPl+r8kHP4COOB4BUeSlTeMyEBhQjfWlFDlFLvFcctBvfXMBve2RxsY7OIf5lciW01IUg9D0Oel3lSvNoEJLF3s9gO5qiCKfUoe99BaNnUBC8ME53UyiBaJ5zyNfC8NuAKQ8AOT6gTaeH8bExV9E111irzjA8JCGB/gYkgjDBKXYpxzAc/94jupwzudmiWF8zSHFZpxT0H+xqp48h1ovIy7dWC2kFlf80tfwdDTB47rRQC+KGrxg/uxJU2hqtvXAieX35w==
  • Delivered-to: mat-dev@xxxxxxxxxxx
  • Ironport-sdr: 9yNy3gt/IayBPTyVmcYSI9o9IxH8cKorOASDob9XD+wXh4Dqr4Mk3hsHG0LbEK0C0s8kSPiMbS W/6pMKm8ERtbdxW0JkGRYGhgEBya/hhmbjWOdIcW58la70I4CkcrPMG1o8cL24tpTiud0KoEQF QEUG7zGPOurffBHMTX+0NQhoeNydyHiB+E0dITpoMwSFpcDGufQTEM1UFbsnx+XpViOHs9J0bc uSRdCu7CTd+sgkZMNMEVGY5c4a9onz5w7XbqS10NycAJD8ildaoD7f4HqPl+F3bPXoPy7iBb0U 06fYc31YWm/avOYrJblfbW2i
  • List-archive: <https://www.eclipse.org/mailman/private/mat-dev/>
  • List-help: <mailto:mat-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/mat-dev>, <mailto:mat-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/mat-dev>, <mailto:mat-dev-request@eclipse.org?subject=unsubscribe>
  • Thread-index: AQHW5H5QeD3mlzEvRkGYv6G+fIw3PaolbT4A
  • Thread-topic: [mat-dev] GarbageCleaner phase code
  • User-agent: Microsoft-MacOutlook/16.44.20121301

Hi Jason,

I also think this is a very good improvement and encourage you to go on and raise a bug/contribute the changes.

@Andrew, I think the suggestions you made for testing are good. I don't have some to add.

Regards,
Krum

On 06.01.21, 23:50, "mat-dev-bounces@xxxxxxxxxxx on behalf of Andrew Johnson"  wrote:

    > Hi all,
    > 
    > Looking for some input on suitability to raise a bug and submit this
    > change. If you can advise any additional specific tests to run I 
    > will be happy to build them out and execute them..
    > 
    > Results on a 73GB file over 5 runs on a 48GB 8+8cores machine are 
    > here, in brief it is 2-4x faster for large heaps:
    > https://gist.github.com/jasonk000/9f31e2446a84b56f11d494c146969e7b
    > 
    > I understand that my last round of commits required an additional 
    > pass of discussion on memory footprint. I believe the memory 
    > footprint here would be reduced as it merges the maps during 
    > generation (C maps, scaling to C cores) vs previous approach (N 
    > maps, when the processing was split into N chunks and scaled to 
    > object heap). All existing functional tests work ok.
    > 
    > There are a sequence of five commits presented here:
    > https://github.com/jasonk000/eclipse-mat/compare/gc-opt
    > 
    > Thanks
    > Jason_______________________________________________

    This looks like a useful improvement. I don't have any tests in mind, 
    but do look at the previous changes to GarbageCleaner.java and what
    defects led up to the change.

    Tests are useful, but with multi-threaded code then reviews of the
    code are also important as defects will not be as reproducible.

    For example the change to
    if (ref != null && ref.get() != null)
    {
        return ref.get();

    could cause problem as the soft reference could be cleared between
    the two get() calls.

    Sometimes a test mode - with more threads or large / smaller
    buffers, or a constrained heap, or a very large heap dump with
    nearly 2G objects can help find bugs.

    Do other people have comments?

    Andrew Johnson

    Unless stated otherwise above:
    IBM United Kingdom Limited - Registered in England and Wales with number 
    741598. 
    Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU




Back to the top