A logging unit logs data, including data on object generation/access and
start/end of GC, information about object longevity when GC is performed,
and data about a method call/return or the like. An analyzing unit
organizes by object logged records, sorts that information about each
object by time or size, and obtains changes in required heap size and a
longevity characteristic of each object. An estimating unit uses a
required heap size data and the object longevity characteristic to
estimate an optimum heap size according to a criterion specified by a
user.