IIIIIIIH
US006438560B1
(12) United States Patent ao) Patent No.: us 6,438,560 Bi
Loen (45) Date of Patent: Aug. 20,2002
Page 2
(54) REUSE OF IMMUTABLE OBJECTS DURING OBJECT CREATION
(75) Inventor: Larry Wayne Loen, Rochester, MN (US)
(73) Assignee: International Business Machines Corporation, Armonk, NY (US)
( * ) Notice: Subject to any disclaimer, the term ol this patent is extended or adjusted under 35 U.S.C. 154(b) by 0 days.
(21) Appl. No.: 09/397,211
(22) Filed: Sep. 16, 1999
(51) Int. CI.7 G06F 17/30
(52) U.S. CI 707/103; 707/100
(58) Field of Search 707/100, 103,
707/3, 6, 104; 709/328; 711/145, 141, 118,
171
(56) References Cited
U.S. PATENT DOCUMENTS
4,775,955 A 10/1988 Liu 711/145
5,715,430 A 2/1998 Hirayama 711/141
5,724,588 A * 3/1998 Hill et al 709/328
5,875,461 A 2/1999 Lindholm 711/118
6,052,699 A 4/2000 Huelsbergen et al 707/206
6,141,737 A 10/2000 Krantz et al 711/171
FOREIGN PATENT DOCUMENTS
EP 0913769 A2 5/1999 G06F/9/44
JP 8314943 11/1996 G06F/17/30
OTHER PUBLICATIONS
L. Monson, "Caching & WeakReferences", JAVA Develop- er's Journal, vol. 3, Issue 8, (Sep. 1998), pp. 32-36. P. Wilson et al., "Dynamic Storage Allocation: A Survey and Critical Review", Department ol Computer Sciences, Uni- versity ol Texas at Austin, (1995), pp. 1-78. H. Baker, "CONS Should not CONS its Arguments, or, a Lazy Alloc is a Smart Alloc," ACM Sigplan Notices, vol. 27, No. 3, pp. 24-34, Mar. 1992.
H. Baker, "Optimizing Allocation and Garbage Collection ol Spaces," Artificial Intelligence, An MIT Perspective, vol. 2, pp. 391-396, 1979.
G. Bozman et al., "Analysis ol Free-Storage Algorithm— Revisited," IBM Systems Journal, vol. 23, No. 1, pp. 44-64, 1984.
(List continued on next page.) Primary Examiner—Sanjiv Shah
(74) Attorney, Agent, or Firm—Wood, Herron & Evans, LLP
(57) ABSTRACT
An apparatus, program product, and method ol processing a request to create an immutable object reuse an existing immutable object in appropriate circumstances to represent redundant data without the necessity for creating an additional immutable object. Prior to creating a new object in response to a request to create an immutable object, a determination is made as to whether a matching immutable object already exists that has the same contents as the requested immutable object. II so, creation ol a new object is inhibited, and a relerence to the matching immutable object is returned in response to the request.
17 Claims, 3 Drawing Sheets
![[merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][graphic][merged small][merged small][merged small][graphic][merged small][graphic][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small]](http://www.google.com/patents?id=duQLAAAAEBAJ&ie=ISO-8859-1&output=text&pg=PA1&img=1&zoom=3&hl=en&q=6272333&cds=1&sig=ACfU3U1gnm75pqJyefLJMc0QlBbCQ87Qeg&edge=0&edge=stretch&ci=112,842,786,460)
OTHER PUBLICATIONS
S. Matsuoka et al., "A Fast Parallel Conservative Garbage Collector for Concurrent Object-Oriented Systems," IEEE, pp. 87-93, 1991.
C. McDowell, "Reducing Garbage in Java," ACM SIG- PLAN Notices, vol. 33, No. 9, pp. 84-86, Sep. 1998. Y. Park et al, "Escape Analysis on Lists," ACM SIGPLAN '92, pp. 116-127, 1992.
L. Smith, IBM TDB, "Software Mechanism to Reuse Object Instances for Improved Performance," vol. 38, No. 10, pp. 237-241, Oct. 1995.
Java Platform 1.2 API Specification: Interface ResultSet, http://www.javasoft.eom/products/jdk/l.2/docs/api/java/sql/ ResultSet.html, downloaded May 17, 1999, 46 pages.
Java Platform 1.2 API Specification: Class Hashtable, http://www.javasoft.eom/products/jdk/l.2/docs/api/java/ util/Hastable.html, downloaded May 17, 1999, 10 pages.
High-performance Computing in the Asia Pacific Region Proceedings, May 14-17, 2000, W. H. Lee et al., "Evaluating of a High-performance Object Reuse Dynamic Memory Allocation Policy for C++ Programs," vol. 1, pp. 386-391.
Wiebe, "A distributed repository for immutable persistent objects", OOPSLA 86, Oct. 2, 1986, pp. 453-465.*
Klemm, "Practical guidelines for boosting Java server performance", Proceedings of ACM 1999 Java Grande Conference, pp. 25-34, Jun. 14, 1999.*
* cited by examiner
« PreviousContinue » |