Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mat-dev] Dominator tree/retained size computation
  • From: Andrew Johnson <andrew_johnson@xxxxxxxxxx>
  • Date: Thu, 13 Jul 2023 11:01:24 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uk.ibm.com; dmarc=pass action=none header.from=uk.ibm.com; dkim=pass header.d=uk.ibm.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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NEbP1h4sw/Z6LX5mu5Z6ILh0Uda7B8+v2llhYnDCtYs=; b=nnVBjdWfmBTklRvArdu/6WiIpfuNx1HFvSj/iaQ6324QHYqu01pqNtp/YsDeUb1z8tzmrG2l0KYv/j05l4Br0WioC2IdLMjWj+DQ/haadeelQgfVvjy1hMSw00mJDZBTs5TRwEgnTPYbBhdfNldy9wvNTd6SXPYToLgZJ7IupN/mAIxZURZ5C/R8n6tDAWoz10ch7gs9zY6TQMquBr+rlz/yAPpDlIA9iN7nWGrSehqNAUlchqX3SAlLMmpWwqGlk1v0rf19PEDn0U/vlLMRM7HUbzMareACBZ7wdpTadV1QvqqYVUQ7XLPxwZG3EnluwTXTLqiePw+NDo8iE6MJ6w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Co0Mo2MCh5HvmYE0nRQVbgwigk9Luuflc/Kj5c3dtOfQaJtEwpB5dZtNeRYmQOohZ3M3zihXfVKXNlw9G1kcm1VM/Yt8NDLu7kbaXkvXX0tgvl7yDFlpeXu8i2F16RHRpJfm6ULRZaB4naNU/WLRbVebuFIA4LofhAGrMvr+IBMV8GY8zQXuACr6Qb8uDPqKHwPHfpdHN71CjFDgrr3tiDtlL61SXlZQnq8qMtJtqBvBG25Yo+W9yPQ4EjHg/HZw5L76AswOtF2f6Vvz9cnfG89cdP6W18Z3+odc262atessmq+hs+rjEkY4aArI/CvJj5/V8ycTZMY4ehEGxY3dYw==
  • Delivered-to: mat-dev@xxxxxxxxxxx
  • 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: AQHZtXldTtrR1WaWSE+yB9SLnWRUow==
  • Thread-topic: [mat-dev] Dominator tree/retained size computation

The code is at
https://git.eclipse.org/r/plugins/gitiles/mat/org.eclipse.mat/+/refs/heads/master/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/DominatorTree.java

Looking at the variable names my guess is that it uses this algorithm:

 

Lengauer, T., & Tarjan, R. E. (1979). A fast algorithm for finding dominators in a flowgraph. ACM Transactions on Programming Languages and Systems (TOPLAS), 1(1), 121-141.

 

This is actually a memory intensive part of the parse, requiring 7 int arrays of size the number of live objects, so for a 1,000,000,000 object heapdump requires 28,000,000,000 bytes of heap in MAT. For the maximum number of objects that MAT can handle would therefore require 56GB of heap.

 

If you know about building dominator trees and want to propose a more memory efficient algorithm, or even better, have some code to contribute under the Eclipse Public License, then please tell us.

 

Andrew Johnson

 

From: mat-dev <mat-dev-bounces@xxxxxxxxxxx> On Behalf Of Himanshu Vashishtha via mat-dev
Sent: Thursday, July 13, 2023 11:24 AM
To: Memory Analyzer Dev list <mat-dev@xxxxxxxxxxx>
Cc: Himanshu Vashishtha

Subject: [EXTERNAL] [mat-dev] Dominator tree/retained size computation

 

 

Hello Devs,

Is it possible to have some info on how MAT computes the dominator tree and subsequently the retained size of objects. I do see it does multi pass on the dump and creates multiple index files — but couldn’t find any doc/info as to how it computes the tree/retained size. 

(In case if reading code is the only way, a high level info will be helpful :))

 

Thanks,

Himanshu 

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU

Back to the top