-
Bug
-
Resolution: Fixed
-
P4
-
1.3.0
-
None
-
ladybird
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2033603 | 1.4.0 | Michael Warres | P4 | Resolved | Fixed | beta |
ObjectOutputStream currently records replaced objects (i.e., those which have
been returned by a call to ObjectOutputStream.replaceObject() or a
class-defined writeReplace() method) in the object array replaceObjects[]. In
order to determine whether or not an object has a replacement,
ObjectOutputStream performs a linear scan of the table (see
ObjectOutputStream.lookupReplace()). If the number of replaced objects is
large, the overhead of this search becomes prohibitively expensive--for each
new object serialized, ObjectOutputStream will scan the entire array for a
match before concluding that there is none.
The replacement table should be replaced with a hash table similar to the one
used for wire handle lookup.
been returned by a call to ObjectOutputStream.replaceObject() or a
class-defined writeReplace() method) in the object array replaceObjects[]. In
order to determine whether or not an object has a replacement,
ObjectOutputStream performs a linear scan of the table (see
ObjectOutputStream.lookupReplace()). If the number of replaced objects is
large, the overhead of this search becomes prohibitively expensive--for each
new object serialized, ObjectOutputStream will scan the entire array for a
match before concluding that there is none.
The replacement table should be replaced with a hash table similar to the one
used for wire handle lookup.
- backported by
-
JDK-2033603 ObjectOutputStream replacement table search is linear
-
- Resolved
-
- duplicates
-
JDK-4341243 RMI performance O(n2) for arguments with embedded remote objects.
-
- Closed
-