CN1447224A - 计算机应用程序中优化存储器使用的方法 - Google Patents

计算机应用程序中优化存储器使用的方法 Download PDF

Info

Publication number
CN1447224A
CN1447224A CN03107311.5A CN03107311A CN1447224A CN 1447224 A CN1447224 A CN 1447224A CN 03107311 A CN03107311 A CN 03107311A CN 1447224 A CN1447224 A CN 1447224A
Authority
CN
China
Prior art keywords
data
storer
garbage collected
storehouse
emulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN03107311.5A
Other languages
English (en)
Inventor
J·A·科哈
A·卡卡雷
T·C·奥康斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of CN1447224A publication Critical patent/CN1447224A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

优化计算机应用程序中存储器使用的方法。接收(215)存储器使用数据(720),其中存储器使用数据(720)包括计时信息。产生(225)存储器使用数据(720)的图形表示(740)。接收(230)至少一个堆栈参数(725)。根据存储器使用数据(720)和堆栈参数(725),运行(245)存储器使用仿真。

Description

计算机应用程序中优化存储器使用的方法
技术领域
本发明的各种实施方案涉及到计算机编程领域。
背景技术
许多现代的编程语言提供了为应用程序实时创建的对象或其它数据结构指令实施动态存储器分配的可能性。一些语言,如C和C++明确要求用户执行诸如存储器分配的回收,而其它语言,如Java和C#提供对存储器管理的支持,允许为动态存储器分配提供动态回收。例如:Java程序语言在Java虚拟机(JVM)堆栈中分配对象。当对象不再需要时,它不明确地在堆栈中被释放或迁移。为了迁移不使用的对象,Java提供了内嵌的回收不被引用的动态分配对象功能,称为“无用(存储)单元”。动态存储器管理能力通常被称作“无用单元回收”。
当存储器不再被需要时,无用单元回收提供了释放和回收存储器的功能,提供了一个能够创建更有效应用程序的范例。然而,无用单元回收本身在许多Java应用程序中增加了操作开销。特别是,使用重要的***存储器资源的Java企业应用程序能够影响到它们运行增加作为工作负荷的无用单元回收活动。这就导致Java企业应用程序的运行缓慢和某些情况下不可靠的操作。
除一些无用单元回收开销是因为软件的瑕疵之外,存储器堆栈的使用没有优化和不正确的无用单元的回收策略是导致无用单元回收开销的主要原因。为优化存储器使用而调整堆栈和调整无用单元回收策略的程序即“无用单元回收的调整”。
无用单元回收的调整在一定的企业应用程序中通过优化存储器的使用和减少整个无用单元回收活动所花费的时间产生大量(如100%,或相当高)的操作。这使得在Java或类似的程序语言中可以获得预计和优化的应用性能。
目前的无用单元回收工具作为成形的或监控解决方案被Java所整合。这些工具一般使用Java公用界面测量堆栈的容量,或依靠JVM所具有的无用单元回收跟踪功能。当这些工具提供给使用者优化无用单元回收的指导时,它们同时也具有很多缺陷。更重要的是,这些工具不能提供任何真正的无用单元回收优化参数,提供解除下述昂贵操作的方法。
图1是说明根据现有技术无用单元回收调整过程100的流程图。在步骤105中,被用来调整无用单元回收的存储器分配跟踪特定为解释器。在步骤110中,应用程序执行写入应用程序中的程序语言。在步骤115中,跟踪数据被分析。在步骤120中,它判断所期望的结果是否已经达到。如果是,过程100结束。否则,如果所期望的结果没有达到,如步骤125所示,堆栈参数根据分析和过程100被调整,返回步骤105。
一般来说,无用单元回收是作为用户键入或默认的参数。为了判断哪些参数要被***,用户必须运行应用程序,并分析Java堆栈性能结果。例如,用户必须完成应用程序的运行而回收性能数据,并分析结果。当全部无用单元回收时间很短暂时,无用单元回收将成为大的应用程序而占用所有执行时间中相当长的一段,如企业应用程序。例如,在大的应用程序中,无用单元回收占用了所有的执行时间。当完成应用程序的运行后,分析堆栈性能数据,新的参数将由用户根据分析而确定。这样的过程将被重复,直至获得所期望的参数。
此外,为了优化无用单元回收,用户必须在应用程序或平台发生变化时,随时决定参数。运行应用程序、回收堆栈性能数据、分析结果所花费的时间可能相当大,这就导致了这些应用程序的运行有着不扉的开销。
当应用程序分析被诊断为不合规则时,额外的问题随之而生。安装,特别是在第三方的计算机***上安装一个应用程序,一般的讲是麻烦的。而且,出于策略考虑,应用程序的拥有者或许不希望在第三方的计算机***上安装其应用程序。于是,第三方必须告诉用户,哪些参数要键入,然后等待应用程序的运行,回收堆栈性能数据。这样就花费了应用程序用户的计算资源,或许超过了直接运用应用程序开销,增加了额外的开销(如,网络停机时间)和其它应用程序的性能下降。
发明内容
公开了一种优化计算机应用程序存储器使用的方法。接收包含计时信息的存储器使用数据。产生存储器使用数据的图形表示。接收至少一个堆栈参数。并执行基于存储器使用数据和堆栈参数的存储器使用数据仿真。
附图说明
合并成为说明一部分的附图,将和说明一起用于说明本发明的实施方案,解释本发明的原理。
图1是说明现有无用数据回收整理技术的流程图。
图2A和图2B是说明根据本发明实施方案,无用数据回收整理选择参数的过程。
图3是根据本发明实施方案,由无用数据回收仿真图形用户界面产生的无用数据回收持续期视图的屏幕截图范例。
图4是根据本发明实施方案,由无用数据回收仿真图形用户界面产生的无用数据回收总结视图的屏幕截图范例。
图5是根据本发明实施方案,由无用数据回收仿真图形用户界面产生的无用数据回收堆栈参数输入视图的屏幕截图范例。
图6是根据本发明实施方案,说明仿真运行无用数据回收的流程图。
图7是根据本发明实施方案,说明数据在Java虚拟机和无用数据回收仿真间流动的数据流程图。
具体实施方式
本发明的首选实施方案的参考将与附图说明的示例予以详细的制定。本发明将和首选实施方案一道进行说明。可以理解,它不期望仅仅局限于本发明的这些实施方案中。相反,本发明意图含盖包括在附属权利声名所定义的本发明的思路和范围的所有变化、调整和等效。而且,在本发明下面的详细描述中,多数细节的提出是为了提供对本发明的一个详尽的理解。不管怎样,很明显,本发明技术领域的技术人员将无须这些细节而进行执行。在其它的实例中,为了避免不必要的模糊本发明的特征,众所周知的过程、构成、结构和装置将不再详细予以描述。
图2A和图2B是根据本发明实施方案的仿真程序用于存储器使用过程200的流程图。在实施方案中,过程200在计算机可读和计算机可执行的指令控制之下由处理器执行。计算机可读和计算机可执行指令留驻在诸如数据存储特征、计算机非永久性存储器和/或计算机永久性存储器中。不管怎样,计算机可读和计算机可执行指令将留驻在计算机任何形式的可读介质中。尽管,特定的步骤在200过程中予以说明,这些步骤只是范例。就是说,本发明的实施方案非常适于执行图2A和图2B所描述的各种其它的步骤或变化。
在图2A的步骤205中,存储器分配性能跟踪被用作设定指定给解释器的无用数据回收。在一种实施方案中,解释器是Java虚拟机(JVM)。存储器分配性能跟踪是用作捕捉供执行离线仿真和执行应用最小指导的必须且充分信息的机构。在一种实施方案中,存储器分配性能跟踪在HP-UX上为-Xverbosegc操作。在一种实施方案中,无用回收性能跟踪数据包括关于无用数据回收的信息,在这里同样是存储器使用数据。为了澄清说明,存储器使用数据这里还包括无用数据回收数据、存储器性能跟踪和详细的无用数据回收跟踪数据。通常,存储器使用数据在表格形式文件中包括关于事件的详细信息和在无用数据回收中发生的操作。在实施方案中,存储器使用数据包括,但不局限于:
为什么执行无用单元回收;
无用单元回收要占用多少时间;
无用单元回收发生的时间;
这个特定的无用单元回收的回收活动要占用多少存储器(如,这个特定的无用单元回收的效果);
堆栈容量的详细信息;
在无用单元回收前,各个片断所占的部分;
在无用单元回收后,各个片断所占的部分;与
被认为是“老”的对象大概的年龄。
在一种实施方案中,其应用程序是基于Java的,存储器使用数据由在JVM无用单元回收器上选定的-Xverbosegc操作产生。
在步骤210中,用于程序编写的程序语言执行一个应用程序。在一种实施方案中,应用是企业应用。在一种实施方案中,应用是基于用Java程序语言编写的Java应用。为了本申请的目的,解释器指基于Java编程语言的JVM,然而,值得重视的是,本发明的目的在于使用回收未引用的动态分配对象(如无用单元回收)来释放未使用存储器的任何编程语言。
在步骤215中,无用单元回收数据(如存储器分配性能跟踪数据、存储器使用数据、未引用的对象回收数据)被无用回收单元仿真所接收。在一种实施方案中,无用单元回收仿真留驻在JVM中,存储器使用数据可以直接访问。在另一种实施方案中,存储器使用数据通过email附件的形式发送到无用单元回收仿真。另一种实施方案中,存储器使用数据通过软盘复制文件进行发送。值得重视的是,存储器使用数据通常是小的文件,非常便于在计算机***到计算机***间传送。
在步骤220中,无用单元回收仿真被访问。无用单元回收仿真包括一个图形用户界面,提供了用于分析和调整堆栈参数、观察无用单元回收仿真结果的用户友好界面。在一种实施方案中,无用单元回收仿真留驻在如JVM同样的计算机***中。在另一个实施方案中,无用单元回收仿真通过网络连接进行访问。
在步骤225中,存储器使用数据的图形显示被生成。如上所述,存储器使用数据为表格形式,包括绘制所产生的多个数据。在一种实施方案中,绘制产生的多个数据用于说明无用单元回收的不同方面。
特别的,在存储器使用数据捕获的计时信息用于绘制对应于应用程序所有执行时间的各种信息。图3是根据本发明的一种实施方案,在数据绘制305期间由无用单元回收仿真的图形用户界面所产生的无用单元回收范例的屏幕截图300。
数据绘制305包括:所有应用程序以秒为单位运行时间的一个X轴310,以秒为单位的特定的无用单元回收程序运行时间的Y轴315。而且,数据绘制305说明的是运行时间的四种无用单元回收程序:提取、***无用单元回收,老的全部和最老的全部。特别的,数据绘制305说明当无用单元回收发生时,什么类型的回收发生和它要运行多长的时间。所有计时的信息,如平均无用单元回收的提取持续时间、在计时信息320中所示的平均满无用单元回收持续时间。
参照图2A步骤225,大范围的数据绘制或图形表示可以由存储器使用数据产生。在一种实施方案中,额外的数据绘制包括,但并不局限于:与时间对应的堆栈使用;与时间对应的自由累积字节;和形成率。本发明的实施方案直接允许用户定义数据的图形表示。用户期望的特定无用单元回收信息可以基于要求的输入产生数据绘制。
在一种实施方案中,存储器使用数据使用文本格式来表示说明在应用程序运行期间,无用单元回收活动的总结。图4是根据本发明的一种实施方案,由无用单元回收仿真图形用户界面产生的总结视图405的示例屏幕截图400。总结视图405说明的是关于JVM堆栈容量、无用单元回收活动和所有统计的详细信息。计时信息410包括花费在无用单元回收上时间的详细信息。饼形图415是所有运行在无用回收上时间方面的另一个图形表示。
参照图2A的步骤225,一些无用单元回收信息的图形表示呈献给用户。使用这些图形表示,用户可以分析一个应用程序的无用单元回收活动。基于用图形表示所呈献的信息,用户可以为了优化应用程序的操作性能而设想改变各种输入参数。
在图2B的步骤230中,至少一个堆栈参数(如一个参数,一个存储器标准或堆栈输入)被无用单元回收仿真接收。在一种实施方案中,用户进入堆栈参数由无用单元回收仿真接收。更佳的,堆栈参数可以由计算机产生,本发明并不意图限制由用户产生堆栈参数的输入。
图5是根据本发明的一种实施方案,由无用单元回收仿真图形用户界面产生的堆栈参数输入视图505屏幕截图500的一个示例。堆栈参数输入视图允许用户通过改变各种堆栈参数而调整应用程序的无用单元回收。在一种实施方案中,有4个参数:全部堆栈大小510、新产生的大小515,存活率520和***无用单元回收呼叫指示器525。
在一种实施方案中,堆栈输入参数视图505表示当应用程序运行时存在的堆栈参数。然后用户参照原值来改变堆栈参数的值。例如,JVM所有堆栈的大小510为64M,堆栈参数输入视图相应的所有堆栈大小510说明值64M。用户知道原值,然后就可以改变所有堆栈大小510的值。
在一种实施方案中,所有堆栈大小510的堆栈参数值、新产生大小515和存活率520可以直接由文本框(如文本框512a-c)输入文本来改变。在一种实施方案中,所有堆栈大小510的堆栈参数值、新产生大小515和存活率520可以通过移动滚动条(如滚动条514a-c)来改变。在一种实施方案中,文本框512中的值随着滚动条514的移动而更新。在另一种实施方案中,滚动条514随着在文本框512中输入新的值而更新。
在一种实施方案中,指示器525是一个包括在应用程序运行中、指示是否开始要求存在存储器管理的检查框。如果应用程序开始上述要求,根据跟踪数据,检查框开始检查。用户可以依据应用程序的特性选择检查框或不选择。
在一种实施方案中,堆栈参数输入视图505包括JVM选择器530。在一种实施方案中,JVM选择器是一个包括多个JVM版本的下拉菜单。JVM选择器具有产生其它JVM版本/操作选项的功能,在开始说明哪些JVM版本/类型在应用程序运行中使用。用户可以通过选择不同的JVM版本改变必须重运行它们应用程序的JVM版本/类型选项。一旦用户键入所期望的参数,仿真通过激活仿真激励器540执行。
在一种实施方案中,堆栈参数输入视图505包括JVM选项535。JVM选项535是包括所选择所有堆栈大小510的堆栈参数值、新产生大小515和存活率520和***无用单元回收呼叫指示器525的文本字符串。一旦所期望的堆栈参数被获得,JVM操作535可以直接在JVM中进行复制。
在图2B的步骤235中,工作负荷属性被调整。更佳的是步骤235是可选的,工作负荷属性将保持一致。在步骤240中,无用单元回收仿真配置被调整。更佳的是步骤240是可选的,无用单元回收仿真配置将保持一致。
在图2B的步骤245中,无用单元回收仿真(如存储器使用仿真)被执行。在一种实施方案中,选择一个仿真激励器(如图3中的仿真激励器340)激活无用单元回收仿真。无用单元回收仿真建立在存储器使用数据和输入参数的基础之上。
图6是说明根据本发明实施方案,仿真无用单元回收过程600的流程图。在步骤605中,详细的无用单元回收跟踪数据被接收。在一种实施方案中,无用单元回收跟踪数据通过在HP-UX的-Xverbosegc操作来获得。在一种实施方案中,无用单元回收跟踪数据包括关于无用单元回收信息和与此相关的无用单元回收数据。
在步骤610中,它基于无用单元回收跟踪数据的格式来确定什么样的仿真模型。在步骤615中,基于输入的无用单元回收跟踪数据,确定源堆栈配置和策略。在步骤620中,至少对堆栈参数的一个调整被接收。更佳的是,调整将用于调整堆栈配置。工作负荷特性或仿真参数。
在步骤625中,仿真特性由表示在跟踪数据中的每个测量间隔来确定。在一种实施方案中,仿真特性参数包括:
确定所有分配的存储器;
确定所有回收的存储器;
估算存储器分配率;和
根据存储器变为非引用的概论。
在步骤630中,新的应用运行根据由步骤625确定的仿真特性进行仿真。在一种实施方案中,无用单元回收仿真数据估算调整的堆栈配置包括,但并不局限于:
无用单元回收的间隔;
每单个回收的持续时间;
每次无用单元回收的起因;
两次回收间的所有存储器分配;
两次回收间的所有存储器回收;
每单次无用单元回收的持续时间;与
通过寿命来估算存储器使用的分布。
在如2B步骤250中,无用单元回收仿真数据的分析和图形表示被绘制。在一种实施方案中,无用单元回收仿真数据表示在表格形式中,因此适于生成多数据绘制。在一种实施方案中,多数据绘制被生成用作说明无用单元回收仿真的不同方面。特别的,无用单元回收仿真数据包括计时信息,允许对应应用程序执行的所有时间轴上绘制各种信息。
更佳的是,产生用作无用单元回收仿真数据的图形表示与在图2A的步骤225产生的无用单元回收数据相似。例如,图3的屏幕截图300示例同样是根据无用单元仿真数据的无用单元回收期间数据图305的说明。同样,图4的屏幕截图400示例同样是根据无用单元仿真数据的总结视图405的说明。
对无用单元数据回收,广泛的数据绘制或图形表示可以通过无用单元数据仿真数据来产生。在一种实施方案中,额外的数据包括,但不局限于:与时间对应的堆栈使用;与时间对应的自由累积字节;和形成率。本发明的一种实施方案直接允许用户定义数据的图形表示。用户期望的特定无用单元回收信息可以基于要求输入产生数据绘制。
在一种实施方案中,对比无用单元回收仿真数据和无用单元回收数据产生一个图形表示。在另一种实施方案中,对比无用单元回收仿真数据和另一套无用单元回收仿真数据产生一个图形表示。更佳的是,任何数量的无用单元仿真的数据集间可以进行比较。对比的图形表示允许用户分析同一应用程序的多种不同的堆栈参数操作,而且允许用户选择想要的应用程序的堆栈参数集。
用户被呈献给一些无用单元数据仿真信息的图形表示。使用这些图形表示,用户可以分析一个用于程序的无用单元数据活动。根据呈献在图形表示中的信息,用户可以设想为了优化应用程序的性能而改变各种输入参数并返回仿真。
在步骤255中,它确定是否运行另一个仿真。在一个实施方案中,这个决定是由用户做出的。假设用户决定运行另一个仿真,程序200返回到步骤230中,且至少一个新的堆栈参数被输入。否则,假设用户不想运行另一个仿真,程序200继续执行到步骤250。
在图2A的步骤260中,优化的堆栈参数可以***到JVM中。在一种实施方案中,堆栈参数由无用单元回收仿真作为一个字符串提供(如图5的JVM选项535)。在一种实施方案中,字符串由无用单元回收仿真直接***到JVM中。在另一种实施方案中,优化由无用单元回收仿真直接复制并粘贴字符串到JVM。
在步骤265中,它确定是否继续仿真结果的分析。在一种实施方案中,这个决定是由优化作出的。假定用户决定继续分析,程序200返回到步骤210。否则,假设用户不想继续分析,程序200继续执行到步骤270。
在步骤270中,具有优化的堆栈参数的应用程序在JVM中执行。在一种实施方案。更佳的是,步骤270是可选的,优化堆栈参数是可靠的。然而,因为优化堆栈参数是仿真的结果,希望通过运行有这优化堆栈参数的应用程序来确定其有效性。
图7是根据本发明的一种实施方案,说明数据在JVM705和存储器使用仿真715(如无用单元回收仿真)间流动的流程图700。更佳的是,JVM705和存储器使用仿真715可以留驻在相同的计算机***或不同的计算机***中。在JVM705和存储器使用仿真715(如存储器使用数据720和优化参数745)间的数据传送通常很小,无论JVM705和存储器使用仿真715留驻在哪里,都非常便于传送。
基于JAVA的应用程序710在JVM705中执行,其中存储器使用数据720被产生。存储器使用数据720传送到存储器使用仿真715。存储器使用数据720包含存储器使用信息,包括:与每个无用单元回收相关的计时信息。存储器使用仿真715产生存储器使用数据的图形表示740。
响应图形表示740,至少一个参数被输入到存储器使用仿真715。可供选择的,工作负荷特性730和仿真配置735被输入到存储器使用仿真715。根据存储器使用数据720和输入的堆栈参数725,仿真被执行。特别的,根据存储器使用数据720,一些假定被做出。例如,在无用单元回收间的线性概率被假设。通过假设无用单元回收的性能,仿真可以根据堆栈参数的变化而操作。更佳的是,本发明的其它实施方案可以做出不同的假定。
在一种实施方案中,一旦完成仿真,图形表示740根据仿真的结果而更新显示。更佳的是,仿真可以为堆栈参数725重复任何次。一旦决定堆栈参数是优化的,优化堆栈参数745可以***到JVM。
本发明的优选实施方案,一种优化计算机应用程序的存储器使用方法被描述。虽然本发明是以特定的实施方案来描述的,本发明并不局限在这些实施方案中,而是参照以下权利要求而解释的。

Claims (10)

1.优化计算机应用程序(710)存储器使用的方法,该方法包括:
a)接收(215)应用程序存储器使用数据(720),该应用程序存储器使用数据(720)包括计时信息;
b)产生(225)该应用程序存储器使用数据的图形表示(740);
c)接收(230)至少一个堆栈参数(725);和
d)根据该存储器使用数据(720)和该堆栈参数(725)操作(245)存储器使用仿真。
2.权利要求1中的方法,其中计算机程序是基于Java的。
3.权利要求1中的方法,还包括***(260)堆栈参数到程序语言解释器。
4.权利要求3中的方法,其中程序语言解释器是Java虚拟机。
5.权利要求1中的方法,其中堆栈参数(725)响应用户输入而被接收。
6.权利要求1中的方法,还包括重复c)和d)优化无用单元回收。
7.权利要求1中的方法,还包括产生(250)无用单元回收仿真的图形表示(740)。
8.权利要求1中的方法,其中存储器使用数据(720)由存储器分配性能跟踪接收。
9.权利要求8中的方法,其中存储器分配跟踪作为-Xverbosegc数据记录。
10.权利要求1中的方法,其中d)包括:
接收(605)存储器使用数据;
根据存储器使用数据确定(610)仿真模型;
根据存储器使用数据确定(615)堆栈配置和堆栈策略;
接收(620)至少一个堆栈参数;
为存储器使用数据的至少一个测量间隔确定(625)仿真特性;
根据仿真特性仿真(630)一个应用程序运行。
CN03107311.5A 2002-03-21 2003-03-20 计算机应用程序中优化存储器使用的方法 Pending CN1447224A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/104,751 US6804691B2 (en) 2002-03-21 2002-03-21 Method for optimization of memory usage for a computer program
US10/104751 2002-03-21

Publications (1)

Publication Number Publication Date
CN1447224A true CN1447224A (zh) 2003-10-08

Family

ID=27804323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03107311.5A Pending CN1447224A (zh) 2002-03-21 2003-03-20 计算机应用程序中优化存储器使用的方法

Country Status (4)

Country Link
US (1) US6804691B2 (zh)
EP (1) EP1349077A3 (zh)
JP (1) JP2004005486A (zh)
CN (1) CN1447224A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467461A (zh) * 2010-11-01 2012-05-23 财团法人工业技术研究院 存储器仿真方法、装置以及模型产生器
CN103197973A (zh) * 2012-01-05 2013-07-10 中兴通讯股份有限公司 一种移动终端及其管理方法

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804691B2 (en) * 2002-03-21 2004-10-12 Hewlett-Packard Development Company, L.P. Method for optimization of memory usage for a computer program
US20030196061A1 (en) * 2002-04-16 2003-10-16 Hideya Kawahara System and method for secure execution of multiple applications using a single GC heap
US7529786B2 (en) * 2003-07-30 2009-05-05 Bea Systems, Inc. System and method for adaptive garbage collection in a virtual machine environment
US7197521B2 (en) * 2003-11-21 2007-03-27 Intel Corporation Method and system performing concurrently mark-sweep garbage collection invoking garbage collection thread to track and mark live objects in heap block using bit vector
US7434214B2 (en) * 2004-01-21 2008-10-07 International Business Machines Corporation Method for determining a close approximate benefit of reducing memory footprint of a Java application
US7340494B1 (en) * 2004-03-12 2008-03-04 Sun Microsystems, Inc. Garbage-first garbage collection
US7636745B1 (en) * 2004-03-12 2009-12-22 Sun Microsystems, Inc. Concurrent-marking-initiation heuristic
WO2005116828A2 (en) * 2004-05-21 2005-12-08 Computer Associates Think, Inc. Method and apparatus for dynamic memory resource management
EP1769352B1 (en) * 2004-05-21 2013-03-20 Computer Associates Think, Inc. Method and apparatus for dynamic cpu resource management
US7237085B2 (en) * 2004-05-28 2007-06-26 Oracle International Corporation Architecture for a scalable heap analysis tool
JP4215037B2 (ja) 2004-12-27 2009-01-28 セイコーエプソン株式会社 リソース管理システム、プリンタ、プリンタ用ネットワークカードおよびリソース管理プログラム、並びにリソース管理方法
JP4207938B2 (ja) * 2005-02-01 2009-01-14 セイコーエプソン株式会社 ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法
JP2006244451A (ja) * 2005-02-01 2006-09-14 Seiko Epson Corp リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法
JP4311386B2 (ja) 2005-02-14 2009-08-12 セイコーエプソン株式会社 ファイル操作制限システムおよびファイル操作制限プログラム、ファイル操作制限方法、電子機器並びに印刷装置
US8104033B2 (en) * 2005-09-30 2012-01-24 Computer Associates Think, Inc. Managing virtual machines based on business priorty
US8225313B2 (en) 2005-10-19 2012-07-17 Ca, Inc. Object-based virtual infrastructure management
JP2007148584A (ja) * 2005-11-24 2007-06-14 Samsung Electronics Co Ltd コンピュータのメモリ使用についての情報を提供するシステム及び方法
US7843827B2 (en) * 2005-12-22 2010-11-30 International Business Machines Corporation Method and device for configuring a network device
JP2007226399A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd 計算機制御方法、計算機、計算機制御プログラム及び計算機システム
US7467278B2 (en) * 2006-05-08 2008-12-16 International Business Machines Corporation Memory tuning for garbage collection and central processing (CPU) utilization optimization
US20080098191A1 (en) * 2006-10-20 2008-04-24 International Business Machines Corporation Determining code efficiency by monitoring memory reallocation
US20080148102A1 (en) * 2006-12-15 2008-06-19 International Business Machines Corporation Method for enhancing debugging of runtime memory access errors by using an integrated visualization tool and a runtime memory error detection tool
US9588821B2 (en) 2007-06-22 2017-03-07 Red Hat, Inc. Automatic determination of required resource allocation of virtual machines
US9727440B2 (en) * 2007-06-22 2017-08-08 Red Hat, Inc. Automatic simulation of virtual machine performance
US9678803B2 (en) 2007-06-22 2017-06-13 Red Hat, Inc. Migration of network entities to a cloud infrastructure
US9569330B2 (en) 2007-06-22 2017-02-14 Red Hat, Inc. Performing dependency analysis on nodes of a business application service group
JP5064134B2 (ja) * 2007-08-03 2012-10-31 株式会社日立製作所 メモリ管理方法およびその方法を用いるコンピュータ
EP2040205A1 (de) * 2007-09-14 2009-03-25 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Echtzeitdatenaustausch
KR100964374B1 (ko) * 2007-12-17 2010-06-17 한국전자통신연구원 전파식별 태그의 메모리 관리 장치 및 방법
US8356061B2 (en) * 2008-06-23 2013-01-15 Oracle America, Inc. Maximizing throughput for a garbage collector
US8301672B2 (en) * 2008-09-22 2012-10-30 Advanced Micro Devices, Inc. GPU assisted garbage collection
US8090752B2 (en) 2008-12-16 2012-01-03 Sap Ag Monitoring memory consumption
US20110119330A1 (en) * 2009-11-13 2011-05-19 Microsoft Corporation Selective content loading based on complexity
US20110191749A1 (en) * 2010-01-29 2011-08-04 Martijn Van Liebergen System and method for generating enterprise applications
US8504878B2 (en) * 2010-05-04 2013-08-06 Oracle International Corporation Statistical analysis of heap dynamics for memory leak investigations
US8522216B2 (en) 2010-05-04 2013-08-27 Oracle International Corporation Memory leak detection
US8749484B2 (en) 2010-10-01 2014-06-10 Z124 Multi-screen user interface with orientation based control
RU2475819C1 (ru) * 2011-08-04 2013-02-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ оптимизации использования ресурсов компьютера
JP5690307B2 (ja) * 2012-06-13 2015-03-25 三星電子株式会社Samsung Electronics Co.,Ltd. コンピュータのメモリ使用についての情報を提供するシステム及び方法
US9075788B1 (en) * 2012-06-15 2015-07-07 Amazon Technologies, Inc. Account state simulation service for cloud computing environments
US9256469B2 (en) 2013-01-10 2016-02-09 International Business Machines Corporation System and method for improving memory usage in virtual machines
US10963810B2 (en) 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
US10540606B2 (en) 2014-06-30 2020-01-21 Amazon Technologies, Inc. Consistent filtering of machine learning data
US10169715B2 (en) 2014-06-30 2019-01-01 Amazon Technologies, Inc. Feature processing tradeoff management
US10339465B2 (en) 2014-06-30 2019-07-02 Amazon Technologies, Inc. Optimized decision tree based models
US9886670B2 (en) 2014-06-30 2018-02-06 Amazon Technologies, Inc. Feature processing recipes for machine learning
US10318882B2 (en) 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
US10102480B2 (en) 2014-06-30 2018-10-16 Amazon Technologies, Inc. Machine learning service
US11100420B2 (en) 2014-06-30 2021-08-24 Amazon Technologies, Inc. Input processing for machine learning
US11182691B1 (en) 2014-08-14 2021-11-23 Amazon Technologies, Inc. Category-based sampling of machine learning data
US10257275B1 (en) 2015-10-26 2019-04-09 Amazon Technologies, Inc. Tuning software execution environments using Bayesian models
US11210138B1 (en) * 2020-09-24 2021-12-28 OnScale, Inc. Dynamic resource allocation for computational simulation
US20220291417A1 (en) * 2021-03-04 2022-09-15 Saudi Arabian Oil Company Hydrocarbon well performance decline curve and evaluation tool
JP2023006299A (ja) * 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819275A (en) * 1995-06-07 1998-10-06 Trusted Information Systems, Inc. System and method for superimposing attributes on hierarchically organized file systems
US5745703A (en) * 1995-07-18 1998-04-28 Nec Research Institute, Inc. Transmission of higher-order objects across a network of heterogeneous machines
US6351845B1 (en) * 1999-02-04 2002-02-26 Sun Microsystems, Inc. Methods, apparatus, and articles of manufacture for analyzing memory use
US6523168B1 (en) * 1999-07-01 2003-02-18 International Business Machines Corporation Reduction of object creation during string concatenation and like operations that utilize temporary data storage
US6804691B2 (en) * 2002-03-21 2004-10-12 Hewlett-Packard Development Company, L.P. Method for optimization of memory usage for a computer program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467461A (zh) * 2010-11-01 2012-05-23 财团法人工业技术研究院 存储器仿真方法、装置以及模型产生器
CN103197973A (zh) * 2012-01-05 2013-07-10 中兴通讯股份有限公司 一种移动终端及其管理方法

Also Published As

Publication number Publication date
JP2004005486A (ja) 2004-01-08
US20030182597A1 (en) 2003-09-25
US6804691B2 (en) 2004-10-12
EP1349077A3 (en) 2005-12-28
EP1349077A2 (en) 2003-10-01

Similar Documents

Publication Publication Date Title
CN1447224A (zh) 计算机应用程序中优化存储器使用的方法
CN107766123B (zh) 一种jvm调优方法
CN1304941C (zh) 用于自主硬件辅助的线程栈跟踪的装置与方法
US8566559B2 (en) Runtime type identification of native heap allocations
US8261266B2 (en) Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US7730464B2 (en) Code compilation management service
US7310718B1 (en) Method for enabling comprehensive profiling of garbage-collected memory systems
US7779054B1 (en) Heuristic-based resumption of fully-young garbage collection intervals
CN1105968C (zh) 用于在面向对象的***中的位置特定的信息分配的计算机***和方法
US8583783B1 (en) Method and system for adaptive recovery of heap memory
JP5147728B2 (ja) 質的に注釈を付けられた注釈付きコード
US7325108B2 (en) Method and system for page-out and page-in of stale objects in memory
US20070136402A1 (en) Automatic prediction of future out of memory exceptions in a garbage collected virtual machine
JP2004206644A (ja) ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置,そのプログラムおよびプログラム記録媒体
US9003240B2 (en) Blackbox memory monitoring with a calling context memory map and semantic extraction
CN103718159B (zh) 图像处理软件开发方法、图像处理软件开发装置
US6898602B2 (en) Measuring the exact memory requirement of an application through intensive use of garbage collector
US20100011357A1 (en) System and method for garbage collection in a virtual machine
US8701095B2 (en) Add/remove memory pressure per object
US11579855B2 (en) Reduced memory consumption of compiler-transformed asynchronous methods
US20070203959A1 (en) Apparatus and method for managing resources using virtual ID in multiple Java application environment
US20070180002A1 (en) Method and apparatus for reducing object pre-tenuring overhead in a generational garbage collector
US6951011B1 (en) Diagnostic method and article for identifying significant events
US8176286B2 (en) Memory recycling in computer systems
US20090228537A1 (en) Object Allocation System and Method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned