US7293263B2 - System and method for memory leak detection in a virtual machine environment - Google Patents
System and method for memory leak detection in a virtual machine environment Download PDFInfo
- Publication number
- US7293263B2 US7293263B2 US10/737,404 US73740403A US7293263B2 US 7293263 B2 US7293263 B2 US 7293263B2 US 73740403 A US73740403 A US 73740403A US 7293263 B2 US7293263 B2 US 7293263B2
- Authority
- US
- United States
- Prior art keywords
- warm
- cold
- objects
- time
- links
- 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.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Definitions
- the invention is generally related to virtual machine and run-time environments, and particularly to a system and method for detecting memory leaks in a garbage collected environment.
- VM virtual machine
- the typical virtual machine (VM) environment exists on a server that includes an operating system and memory space.
- the VM executes, servicing client requests and running applications, it creates object instances in the memory of the VM or server.
- the typical VM environment includes a garbage collection mechanism that is used to clean up the memory space and to remove those resources that are no longer needed.
- the traditional approach to detecting and analyzing potential memory leaks during the software development process is to create an object display object map for the developer that illustrates all of the preferred objects in the memory space, and then highlights or otherwise displays to the developer those objects that may represent potential memory leaks.
- the problem with this method is that it only gives a high level view of the object map, and provides very little useful information to the developer to accurately determine large scale memory leaks and find the responsible object or objects. Since the vast number of objects represented on the display tend to overwhelm the important information, i.e., which objects are prone to creating memory leaks, it is doubtful that this large scale object display is of much use to the developer.
- the invention provides a system and method for detecting memory leaks in a garbage collected environment.
- the invention provides a mechanism by which objects in the memory space of a virtual machine are analyzed as to whether they are “warm” or “cold”, i.e., how long they have persisted in memory without being accessed or referenced by another object.
- the objects are clustered into groups or clusters of warm or cold objects, and any links from warm clusters to cold clusters are determined. This information is then provided to the software developer for use in detecting and analyzing potential memory leaks.
- the invention comprises a system for determining potential memory leaks in a run-time environment, said run-time environment including a virtual machine and a memory space for storing objects, comprising: an object temperature analyzer that determines the status of warm objects and cold objects in said memory, and the links between said warm and cold objects; and, a report mechanism that reports information about said links, for use in determining potential memory leaks.
- the invention comprises a method for use in determining potential memory leaks in a run-time environment, said run-time environment including a virtual machine and a memory space for storing objects, comprising: creating objects in the memory of a run-time environment; stamping each object with a time stamp when created; updating the time stamp as each object is accessed or referenced; after a time T check marking each object as being either warm or cold; clustering warm objects together to form warm clusters and cold objects together to form cold clusters; and, displaying an object map showing links between warm clusters and cold clusters.
- FIG. 1 shows a flowchart of a method in accordance with an embodiment of the invention that can be used to display an object map.
- FIG. 2 illustrates a schematic of a system in accordance with an embodiment of the invention that can be used to analyze potential memory leaks.
- FIG. 3 illustrates a schematic of a process in accordance with an embodiment of the invention in which objects are marked as warm or cold objects and then clustered to provide memory leak information.
- FIG. 4 shows a flowchart of a process in accordance with an embodiment of the invention that is used to cluster warm and cold objects and provide memory leak information.
- FIG. 5 illustrates a object map and display in accordance with an embodiment of the invention.
- an embodiment of the present invention provides a system and method for detecting memory leaks in a garbage collected environment.
- the invention provides a mechanism by which objects in the memory space of a virtual machine are analyzed as to whether they are “warm” or “cold”, i.e., how long they have persisted in memory without being accessed or referenced by another object.
- the objects are clustered into groups or clusters of warm or cold objects, and any links from warm clusters to cold clusters are determined. This information is then provided to the software developer for use in detecting and analyzing potential memory leaks.
- FIG. 1 shows a flowchart of a process in accordance with an embodiment of the invention.
- the process begins in step 2 with stamping each object with a time stamp. This can only be done in a virtual machine environment, since that is where the objects are placed into memory.
- each object header must include an extra field that is used to represent the time stamp.
- step 4 every time the object is accessed i.e., referenced by another object, the time stamp within the header for that object is updated with the new time stamp information.
- step 6 after a particular time, all of the objects are analyzed for potential memory leaks.
- Objects that have been accessed within some reasonable measure of time are marked as “warm” objects, while objects that have not been accessed within that time frame are marked as “cold” objects. It will be evident that the length of time used to determine whether an object should be marked as being warm or cold may be varied to suit the particular implementation, system environment, or needs of the developer. Embodiments of the invention may include controls for allowing the developer to fine tune the distinction between warm and cold objects.
- step 8 all of the warm objects which are pointing to each other are clustered together in a warm cluster, and similarly all of the cold objects that are pointing together are clustered together to form a cold cluster. This clustering mechanism greatly assists the software developer in detecting potential memory leaks.
- step 10 an object map is displayed graphically showing the programmer software developer the links between the cold clusters and the warm clusters, and also informing the developer which particular field in which particular warm object is referencing the cold cluster. This gives the developer a powerful graphical view of their object memory usage, and allows them to focus on those objects that present the most potential for memory leak.
- the number of clusters can be reduced by displaying to the developer only those clusters that occupy more than a particular amount of memory space, e.g. x bytes of memory.
- a particular amount of memory space e.g. x bytes of memory.
- the actual implementation details of this may vary, and may be left to the developer to fine-tune for their particular needs or preferences.
- FIG. 2 illustrates a system in accordance with an embodiment of the invention that can be used by a software developer to detect potential memory leaks in a virtual machine or run-time environment.
- the system 20 typically includes a server 22 that is accessed by a client device including a display 24 .
- the display 24 and server device 22 may be included within the same physical machine.
- the server typically includes hardware components 26 , operating system 28 , and a run-time environment or virtual machine (VM) 30 such as the Java Virtual Machine, JRockit VM, or another type of virtual machine.
- the VM also includes, or has access to, a memory space 32 which includes the objects necessary for the application 34 .
- the VM includes a mechanism, in this case indicated as an object temperature analyzer and clusterer 36 , which is used by the system to determine the temperature and potential memory leakage of objects 34 within memory space 32 of the VM 30 . This information is then used to create an object map 38 on the developer's display 24 , that illustrates the objects in memory and their potential for memory leakage.
- an object temperature analyzer and clusterer 36 which is used by the system to determine the temperature and potential memory leakage of objects 34 within memory space 32 of the VM 30 . This information is then used to create an object map 38 on the developer's display 24 , that illustrates the objects in memory and their potential for memory leakage.
- FIG. 3 illustrates an overview of a process in accordance with an embodiment of the invention in which objects in memory are clustered by the object temperature analyzer and clusterer to provide information about potential memory leaks to the developer.
- objects 34 occupy the memory space 32 of the virtual machine. While in the example shown in FIG. 3 , objects are actually moved within the memory space of the computer during a garbage collection process, it will be evident to one skilled in the art that the clustering process need not actually move the objects within memory but may merely determine which objects belong to which clusters and then use this information to create the object map that appears on the software developer's display.
- FIG. 3 is thus shown for illustrative purposes but does not necessarily represent the actual positioning or movement of objects within memory space.
- objects A 36 , B 48 , C 54 , D 60 , and E 66 are created in memory 32 .
- Each object for example object A 36 , includes a number of fields 38 , 40 , 42 .
- the object will also include a time stamp 44 that is used to store a value indicating the time that the object was last accessed by the system or by another object.
- Pointer field 46 allows objects to reference other objects, or to be referenced by other objects.
- object C references object A by pointer 72 while object D references object C by pointer 76 .
- pointers 70 , 74 , and 78 are used to reference other objects. After a particular time T has elapsed, which depending on the implementation may range from several milliseconds to many tens or hundreds of seconds, an analysis is performed of the objects currently in memory. The time stamp for each object is checked against the current system time, and those objects that have a time stamp older than a particular period of time are marked as cold objects. All other objects, i.e. those that have a time stamp more recent than a specified cut-off time are marked as warm objects. Once marked, cold objects are clustered together, as are warm objects. Links between warm clusters and cold clusters for example pointer 76 in FIG. 3 , are particularly important since they represent a link from a warm object to a cold object and are thus a potential memory link. This information is provided to the software developer as part of the object map, and the fields responsible for this pointer will be indicated.
- FIG. 4 illustrates a flowchart in accordance with an embodiment of the invention that illustrates the process used by the system to display an object map, including displaying links between warm and cold clusters.
- the process begins, either automatically at a particular point in time, or at the request of the software developer, for example to take a snap-shot of the current state of the system.
- the memory space is populated with objects as the run-time environment executes.
- the object header includes a time stamp field which is initially set as T init , i.e., the time at which the object is initialized.
- step 96 as the object is used, or referenced by a subsequent object, the time stamp field is updated with the last access time T access for this particular object.
- the system is then allowed to run for a check time T check , in step 98 .
- This process is repeated in step 100 for each object in memory.
- step 102 the system receives a request, i.e., either an automatic request or a determined request by the operator, to view the object display or object map.
- step 104 the time stamp is checked for each object in memory. For each object in memory, in step 106 the state of the object is determined as to whether the object is warm or cold, and marked accordingly. If T check ⁇ T access is greater than a specified time T limit , then the object may be considered cold.
- step 108 This process is repeated for each object in memory, in step 108 .
- all objects in memory will now be indicated as being warm or cold.
- step 110 all cold objects that point to one another are clustered together, while in step 112 the clustering process is repeated for all warm objects.
- step 114 the system determines these warm object clusters that point to cold object clusters. These are of particular importance to the software developer since they represent large potential memory leaks.
- step 116 the fields in the culprit objects are introspected to determine which of the fields in the warm objects point to which of the fields in the cold objects.
- step 118 the object map for the current situation is displayed on the user's display including links between the warm clusters and cold clusters, or between warm objects and cold objects. The information may also be exported to other applications for use during the software development process.
- FIG. 5 illustrates an example of an object map in accordance with an embodiment of the invention.
- the operator's display 24 is used to display an object map 38 , upon which object clusters are displayed with those clusters that are warm and which point to cold clusters clearly indicated on the object map.
- the user may then find out additional information about the culprit objects modify the software code if necessary, and re-run the analysis to assist in the software development process.
- the present invention may be conveniently implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure.
- Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
- the present invention includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present invention.
- the storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMS, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Examining Or Testing Airtightness (AREA)
Abstract
Description
Claims (75)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/737,404 US7293263B2 (en) | 2002-12-20 | 2003-12-16 | System and method for memory leak detection in a virtual machine environment |
PCT/US2003/040941 WO2004059440A2 (en) | 2002-12-20 | 2003-12-18 | System and method for memory leak detection in a virtual machine environment |
AU2003301228A AU2003301228A1 (en) | 2002-12-20 | 2003-12-18 | System and method for memory leak detection in a virtual machine environment |
US11/935,287 US7757202B2 (en) | 2002-12-20 | 2007-11-05 | System and method for memory leak detection in a virtual machine environment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43548702P | 2002-12-20 | 2002-12-20 | |
US10/737,404 US7293263B2 (en) | 2002-12-20 | 2003-12-16 | System and method for memory leak detection in a virtual machine environment |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/935,287 Continuation US7757202B2 (en) | 2002-12-20 | 2007-11-05 | System and method for memory leak detection in a virtual machine environment |
Publications (2)
Publication Number | Publication Date |
---|---|
US20040133895A1 US20040133895A1 (en) | 2004-07-08 |
US7293263B2 true US7293263B2 (en) | 2007-11-06 |
Family
ID=32685398
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/737,404 Active 2025-10-22 US7293263B2 (en) | 2002-12-20 | 2003-12-16 | System and method for memory leak detection in a virtual machine environment |
US11/935,287 Expired - Lifetime US7757202B2 (en) | 2002-12-20 | 2007-11-05 | System and method for memory leak detection in a virtual machine environment |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/935,287 Expired - Lifetime US7757202B2 (en) | 2002-12-20 | 2007-11-05 | System and method for memory leak detection in a virtual machine environment |
Country Status (3)
Country | Link |
---|---|
US (2) | US7293263B2 (en) |
AU (1) | AU2003301228A1 (en) |
WO (1) | WO2004059440A2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091646A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Statistical memory leak detection |
US20060248103A1 (en) * | 2005-04-29 | 2006-11-02 | Cisco Technology, Inc. | Method of detecting memory leaks in software applications |
US20080301504A1 (en) * | 2007-05-29 | 2008-12-04 | Jinfang Chen | Method and Apparatus to Anticipate Memory Exhaustion in an Open Services Gateway Initiative Environment |
US8640116B2 (en) * | 2004-02-26 | 2014-01-28 | Broadcom Corporation | Loader module, and method for loading program code into a memory |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761852B2 (en) * | 2003-11-26 | 2010-07-20 | International Business Machines Corporation | Fast detection of the origins of memory leaks when using pooled resources |
US7325106B1 (en) * | 2004-07-16 | 2008-01-29 | Sun Microsystems, Inc. | Method for monitoring heap for memory leaks |
US7769974B2 (en) * | 2004-09-10 | 2010-08-03 | Microsoft Corporation | Increasing data locality of recently accessed resources |
US7313661B1 (en) * | 2005-03-18 | 2007-12-25 | Sun Microsystems, Inc. | Tool for identifying causes of memory leaks |
US7870170B2 (en) * | 2005-05-03 | 2011-01-11 | International Business Machines Corporation | Method and apparatus for determining leaks in a Java heap |
US20060259896A1 (en) * | 2005-05-16 | 2006-11-16 | Microsoft Corporation | Maintaining reproducibility across multiple software builds |
US7496795B2 (en) | 2005-06-02 | 2009-02-24 | International Business Machines Corporation | Method, system, and computer program product for light weight memory leak detection |
US7836435B2 (en) * | 2006-03-31 | 2010-11-16 | Intel Corporation | Checking for memory access collisions in a multi-processor architecture |
US8667471B2 (en) | 2007-03-30 | 2014-03-04 | Sap Ag | Method and system for customizing profiling sessions |
US8356286B2 (en) * | 2007-03-30 | 2013-01-15 | Sap Ag | Method and system for providing on-demand profiling infrastructure for profiling at virtual machines |
US7904493B2 (en) * | 2007-03-30 | 2011-03-08 | Sap Ag | Method and system for object age detection in garbage collection heaps |
US8522209B2 (en) * | 2007-03-30 | 2013-08-27 | Sap Ag | Method and system for integrating profiling and debugging |
US8336033B2 (en) * | 2007-03-30 | 2012-12-18 | Sap Ag | Method and system for generating a hierarchical tree representing stack traces |
US20080243970A1 (en) * | 2007-03-30 | 2008-10-02 | Sap Ag | Method and system for providing loitering trace in virtual machines |
US8601469B2 (en) * | 2007-03-30 | 2013-12-03 | Sap Ag | Method and system for customizing allocation statistics |
US7984483B2 (en) | 2007-04-25 | 2011-07-19 | Acxess, Inc. | System and method for working in a virtualized computing environment through secure access |
US7895483B2 (en) * | 2007-05-25 | 2011-02-22 | International Business Machines Corporation | Software memory leak analysis using memory isolation |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US9727436B2 (en) * | 2008-01-02 | 2017-08-08 | International Business Machines Corporation | Adding a profiling agent to a virtual machine to permit performance and memory consumption analysis within unit tests |
US8904359B2 (en) * | 2008-03-06 | 2014-12-02 | International Business Machines Corporation | On-demand monitoring of memory usage |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8156243B2 (en) | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) * | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8938526B1 (en) | 2010-09-28 | 2015-01-20 | Amazon Technologies, Inc. | Request routing management based on network components |
US8930513B1 (en) | 2010-09-28 | 2015-01-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8924528B1 (en) | 2010-09-28 | 2014-12-30 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
CN103229167A (en) * | 2010-10-06 | 2013-07-31 | 星汇数据解决方案公司 | System and method for indexing electronic discovery data |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
CN102955719B (en) | 2011-08-31 | 2016-06-22 | 国际商业机器公司 | The defining method of doubtful memory overflow and device |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US9172674B1 (en) | 2012-03-21 | 2015-10-27 | Amazon Technologies, Inc. | Managing request routing information utilizing performance information |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9135048B2 (en) | 2012-09-20 | 2015-09-15 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9582421B1 (en) | 2012-12-19 | 2017-02-28 | Springpath, Inc. | Distributed multi-level caching for storage appliances |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US9317393B2 (en) | 2013-06-13 | 2016-04-19 | Oracle International Corporation | Memory leak detection using transient workload detection and clustering |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10289347B2 (en) | 2016-04-26 | 2019-05-14 | Servicenow, Inc. | Detection and remediation of memory leaks |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
WO2021120140A1 (en) * | 2019-12-20 | 2021-06-24 | Intel Corporation | Managing runtime apparatus for tiered object memory placement |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560773B1 (en) * | 1997-12-12 | 2003-05-06 | International Business Machines Corporation | Method and system for memory leak detection in an object-oriented environment during real-time trace processing |
US20030163661A1 (en) * | 2002-02-25 | 2003-08-28 | International Business Machines Corporation | System and method for tracking memory leaks |
US6658652B1 (en) * | 2000-06-08 | 2003-12-02 | International Business Machines Corporation | Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing |
US20040078540A1 (en) * | 2002-10-18 | 2004-04-22 | Cirne Lewis K. | Locating potential sources of memory leaks |
US6728738B2 (en) * | 2002-04-03 | 2004-04-27 | Sun Microsystems, Inc. | Fast lifetime analysis of objects in a garbage-collected system |
US6795836B2 (en) * | 2000-12-29 | 2004-09-21 | International Business Machines Corporation | Accurately determining an object's lifetime |
US7035884B2 (en) * | 2002-11-05 | 2006-04-25 | Sun Microsystems, Inc. | Placement of allocation trains in the train algorithm |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
US6167535A (en) * | 1997-12-09 | 2000-12-26 | Sun Microsystems, Inc. | Object heap analysis techniques for discovering memory leaks and other run-time information |
US6463515B1 (en) * | 2000-06-23 | 2002-10-08 | Dell Products L.P. | System and method for recovering physical memory locations in a computer system |
CN101615143B (en) * | 2008-06-27 | 2013-04-17 | 国际商业机器公司 | Method and device for diagnosing memory leak |
-
2003
- 2003-12-16 US US10/737,404 patent/US7293263B2/en active Active
- 2003-12-18 AU AU2003301228A patent/AU2003301228A1/en not_active Abandoned
- 2003-12-18 WO PCT/US2003/040941 patent/WO2004059440A2/en not_active Application Discontinuation
-
2007
- 2007-11-05 US US11/935,287 patent/US7757202B2/en not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560773B1 (en) * | 1997-12-12 | 2003-05-06 | International Business Machines Corporation | Method and system for memory leak detection in an object-oriented environment during real-time trace processing |
US6658652B1 (en) * | 2000-06-08 | 2003-12-02 | International Business Machines Corporation | Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing |
US6795836B2 (en) * | 2000-12-29 | 2004-09-21 | International Business Machines Corporation | Accurately determining an object's lifetime |
US20030163661A1 (en) * | 2002-02-25 | 2003-08-28 | International Business Machines Corporation | System and method for tracking memory leaks |
US6728738B2 (en) * | 2002-04-03 | 2004-04-27 | Sun Microsystems, Inc. | Fast lifetime analysis of objects in a garbage-collected system |
US20040078540A1 (en) * | 2002-10-18 | 2004-04-22 | Cirne Lewis K. | Locating potential sources of memory leaks |
US7035884B2 (en) * | 2002-11-05 | 2006-04-25 | Sun Microsystems, Inc. | Placement of allocation trains in the train algorithm |
Non-Patent Citations (3)
Title |
---|
Laurent Amsaleg, Michael J. Franklin, Olivier Gruber, "Garbage collection for a client-server persistent object store", Aug. 1999, ACM Transactions on Computer Systems (TOCS), vol. 17 Issue 3, pp. 153-201. * |
M. Schelvis, "Incremental distribution of timestamp packets: a new approach to distributed garbage collection", Sep. 1989 ACM SIGPLAN Notices , Conference proceedings on Object-oriented programming systems, languages and applications OOPSLA '89, vol. 24 Issue 10, pp. 37-48. * |
Sung-Wook Ryu, B. Clifford Neuman, "Garbage Collection for Distributed Persistent Objects", posted 1997, retrieved from http://www.objs.com/workshops/ws9801/papers/paper015.html. * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091646A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Statistical memory leak detection |
US7577943B2 (en) * | 2003-10-24 | 2009-08-18 | Microsoft Corporation | Statistical memory leak detection |
US8640116B2 (en) * | 2004-02-26 | 2014-01-28 | Broadcom Corporation | Loader module, and method for loading program code into a memory |
US20060248103A1 (en) * | 2005-04-29 | 2006-11-02 | Cisco Technology, Inc. | Method of detecting memory leaks in software applications |
US20080301504A1 (en) * | 2007-05-29 | 2008-12-04 | Jinfang Chen | Method and Apparatus to Anticipate Memory Exhaustion in an Open Services Gateway Initiative Environment |
US7793161B2 (en) * | 2007-05-29 | 2010-09-07 | International Business Machines Corporation | Method and apparatus to anticipate memory exhaustion in an open services gateway initiative environment |
Also Published As
Publication number | Publication date |
---|---|
US20040133895A1 (en) | 2004-07-08 |
US7757202B2 (en) | 2010-07-13 |
WO2004059440A2 (en) | 2004-07-15 |
AU2003301228A8 (en) | 2004-07-22 |
AU2003301228A1 (en) | 2004-07-22 |
US20080065842A1 (en) | 2008-03-13 |
WO2004059440A3 (en) | 2006-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7293263B2 (en) | System and method for memory leak detection in a virtual machine environment | |
US20050204342A1 (en) | Method, system and article for detecting memory leaks in Java software | |
US7496615B2 (en) | Method, system and article for detecting critical memory leaks causing out-of-memory errors in Java software | |
US7904493B2 (en) | Method and system for object age detection in garbage collection heaps | |
US7313661B1 (en) | Tool for identifying causes of memory leaks | |
US5528753A (en) | System and method for enabling stripped object software monitoring in a computer system | |
US7792950B2 (en) | Coverage analysis of program code that accesses a database | |
US6954922B2 (en) | Method apparatus and article of manufacture for time profiling multi-threaded programs | |
US6026236A (en) | System and method for enabling software monitoring in a computer system | |
US7953772B2 (en) | Method and system for inspecting memory leaks and analyzing contents of garbage collection files | |
CN101295268B (en) | Partition memory dumping method and device facing software system | |
US7293142B1 (en) | Memory leak detection system and method using contingency analysis | |
US8229979B2 (en) | Method and system for inspecting memory leaks | |
US8402435B1 (en) | Systems and methods for organizing source code | |
EP0864975A2 (en) | Detecting concurrency errors in multi-threaded programs | |
US20020199172A1 (en) | Dynamic instrumentation event trace system and methods | |
US7325106B1 (en) | Method for monitoring heap for memory leaks | |
US20060005078A1 (en) | System and method of identifying the source of a failure | |
US8793289B2 (en) | Method and system for detecting memory leaks and copying garbage collection files | |
US8478738B2 (en) | Object deallocation system and method | |
CN1963783A (en) | Method and system for analysis processing of computer program | |
US7765375B2 (en) | Memory management method, information processing apparatus, and memory management program | |
US7725771B2 (en) | Method and system for providing enhanced memory error messages | |
Christiaens et al. | TRaDe: Data race detection for Java | |
KR100936967B1 (en) | Apparatus for tracing memory leaks of user programs on was environment and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BEA SYSTEMS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DAHLSTEDT, JOAKIM;LONNEBRING, PETER;VIDSTEDT, MIKAEL;REEL/FRAME:014824/0608 Effective date: 20031212 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEA SYSTEMS, INC.;REEL/FRAME:025192/0244 Effective date: 20101008 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |