Allocation sites profiling showed a BDB util class
method, FastOutputStream.bump(), as a top garbage
creator (oftentimes, the top of all allocation sites).
Turns out that for our ~1K serialized CrawlURIs, a
buffer was being grown and copied to the larger version
multiple times per serialization.
Sleepycat reports others have runn into this and the
initial-size/grow will be better behaved and tunable in
BDBJE 2.0.
Slimming our CrawlURI serialization should help a lot
too. (See #1208747
http://sourceforge.net/tracker/index.php?func=detail&aid=1208747&group_id=7
3833&atid=539102
).
However, we can also refine SerialBinding slightly in
the meantime to reuse a single FastOutputStream per
thread, making the number of allocations here
negligible. (The single stream per thread would each
grow its buffer to a sufficiently spacious size
quickly, eliminating almost all initial allocations and
per-serialization grows.)
Gordon Mohr
None
1.6.0
Public
|
Date: 2007-03-14 01:42
|
|
Date: 2005-08-04 22:20 Logged In: YES |
|
Date: 2005-05-25 21:33 Logged In: YES |
| Field | Old Value | Date | By |
|---|---|---|---|
| artifact_group_id | None | 2005-09-23 21:08 | gojomo |
| close_date | - | 2005-08-04 22:20 | gojomo |
| status_id | Open | 2005-08-04 22:20 | gojomo |