StartupCache

From MozillaWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

StartupCache is a replacement for Fastload.

It is meant to reside in the profile directory and provide a convenient API to store continuous chunks of data in it.

I think we can use the JAR format for this

Things I want:

  • Index of entries in the file(at the end of it)
  • Per entry-checksum like jars
  • No multiplexing, writing to the cache will write into a memory buffer and it will be serialized on .Close() (one close() per module).
  • Single mmaped cache file to reduce file io
  • Will be suitable for everything that's currently stored in fastload + manifest cache + pref cache + etc
  • Cache should have a string table that cache's consumers can share.

Cache's filename should be:

startup.<endianness>.<wordsize>.cache to avoid issues with people moving profiles between machines


We hope to achieve some performance wins by having 1 file and contiguous buffers. Also, hopefully we can cache more stuff.

Proposed interface is just char* getBuffer(id), writeBuffer(id, buf, length). Clients take care of their own serialization/deserialization.