[HTTPS-Everywhere] Speeding up Firefox start with SQLite
Jacob Hoffman-Andrews
jsha at newview.org
Sun Jan 12 20:04:14 PST 2014
On 01/12/2014 04:34 PM, Claudio Moretti wrote:
> how does the schema handle duplicate targets?
The schema works fine with duplicate targets, but as you point out, the
JS code I wrote ignores the possibility of multiple results. The
validator complains about duplicate entries, so I wasn't sure what
behavior to implement here. I've changed it to include the duplicate
entries.
On 01/12/2014 01:23 PM, Vijay P wrote:
> You could start a webworker to copy everything from the DB to RAM in
> the background when you start up...
I didn't have time to learn about webworkers and add the code. Instead I
added a compromise: At startup we load just the list of available
targets, so we only have to hit the DB when we know there is a target
match. This speeds up browsing significantly and only costs ~300 ms at
startup on my 6-year old laptop. This also helps keep the initial memory
footprint down (411k vs 3.4M), and most of the rulesets never need to be
parsed since they are never visited.
If you're interested in writing a webwork to eliminate that remaining
300ms delay, I would be interested in that!
Also, it appears that HTTPSRules.init gets called three times during
startup, which amplifies the slowness:
https://github.com/EFForg/https-everywhere/issues/84.
New version at
https://jacob.hoffman-andrews.com/hacks/https-everywhere-jsha-sqlite-demo-v2.xpi
(.asc for sig).
More information about the HTTPS-Everywhere
mailing list