mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 15:15:23 +00:00
4a6bd744a3
code for the ElectricalFire JIT.
95 lines
3.2 KiB
Plaintext
95 lines
3.2 KiB
Plaintext
SportModel To-Do List
|
|
|
|
- Make page manager initialize pages to all zeros
|
|
- remove fancy object initialization from alloc routines
|
|
- java needs all fields to be zeroed, not just pointers
|
|
- need to zero objects when copying occurs too
|
|
|
|
- Implement weak ref support
|
|
- new types
|
|
- weak array
|
|
- weak (open) hashtable
|
|
- stack of objects with weak refs
|
|
- on stack overflow, mark weak fields instead
|
|
- if mark stack also overflows... !
|
|
- routine to drain weak ref stack (done at end of gc)
|
|
- if object, use weak ref field descriptors
|
|
- if array, null out unmarked objects
|
|
- need heuristic for disposing them
|
|
- wait for java 1.2 spec for sun.misc.WeakRef
|
|
|
|
- Implement open hash-tables
|
|
- needed?
|
|
- must be primitive (with custom scavenge routine) because
|
|
keys & values are intermixed in same object
|
|
|
|
- Sort out public vs. private info in header files
|
|
|
|
- Add ability to explicitly lock and unlock objects for JS
|
|
|
|
- Make Mac deal with multiple segments
|
|
- i.e. grow page and card tables
|
|
- need to stop app threads at safe points (non write barrier
|
|
boundaries)
|
|
- need to not be in a piece of code holding the address of a
|
|
page desc (a lock in gc)
|
|
|
|
- Unix page manager
|
|
|
|
- 16 and 64 bit support
|
|
|
|
- Add splay trees to page manager to find clusters faster
|
|
- profile for large-object intensive allocations
|
|
|
|
- Add blacklist support to page manager
|
|
- blacklist bit already set for pages
|
|
|
|
- Figure out locking strategy
|
|
- currently Collect0 is not protected!
|
|
- need notion of "processor"?
|
|
|
|
- VirtualAlloc/Free on a per-page basis is too frequent
|
|
- institute large blocks in the page manager?
|
|
- add a better caching strategy
|
|
- add a memory pressure api
|
|
|
|
- Change SMPage* to SMPageNum throughout
|
|
- conservative references are being found to pages
|
|
- these look like refs to the first object on the page
|
|
|
|
- Implement demographic feedback mediated tenuring policy
|
|
|
|
- Implement segmented arrays for win16
|
|
- not needed anymore with Greg's 32-bit win3.1?
|
|
|
|
- Profiling
|
|
- always more to do
|
|
|
|
- Memory visualization tools
|
|
|
|
- Add multi-processor support
|
|
- introduce multiple youngest generations
|
|
- need nspr notion of a "processor" to associate a youngest
|
|
generation with (gating factor)
|
|
- change allocation apis to specify a generation to allocate
|
|
in
|
|
- add allocation lock per youngest generation for concurrent
|
|
allocation/collection
|
|
- add lock for promotion to second generation during copying
|
|
- fix write-barrier code to scan other youngest generation
|
|
spaces for incoming pointers
|
|
|
|
- Integration with EF
|
|
- on gcbranch2 of ns/electricalfire
|
|
|
|
- need build-time flag to determine whether class objects are
|
|
scavenged or not
|
|
- yes for EF
|
|
|
|
- need union type for pointer/non-pointer?
|
|
- low-order tag bit for pointers
|
|
- only 31 bits of data!
|
|
- unify with dereference operation
|
|
- ambiguous field descriptors in class
|
|
|