IPA Scalability Analysis

From Open64 Wiki

Revision as of 23:04, 16 December 2008 by Admin (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Introduction

This work mainly focuses on the scalability of IPA framework. It's made up of two parts:

  • Total Memory Consumption
  • Compiled Binary Size

Total Memory Consumption

We will take 483.Xalan for example, which is the largest application in Spec2006. The peak memory consumption is 700M:

  • Heap: 449M
  • Stack: 5M
  • MMap: 239M
  • Unknown: 24M

Heap

The Heap is constituted by the following parts:

  • Before IPA: 101M
  • IPAA: 160M
  • IPA other phases: 18M
  • IPO Nodes (Symbol Table & WN): Up to 52M
    IPO_NODEs
  • IPO Alias Classification: 125M
    IPO Alias Classification

The total heap memory consumption of IPO phases:

Total Heap Memory Consumption

According to the statistics, IPAA and IPO alias classification consume most of the memory. And the symbol tables of IPA_NODES, only consumes a small amount, because the memory will be released after all its in-edges and out-edges are processed.

Stack

It only consumes a little amount of memory, and won't change throughout the who IPO process.

MMap

TBD

Compiled Binary Size

TBD

Personal tools