[Fire HD 8 and HD 10 Original Android Development] timpster:
Yeah, it was quite the rant, but I've solved the fennec issue: javascript!

With 1,400 MB of memory, javascript will just ... There isn't enough space, so here is what I've changed, even settings I don't understand, even disabling some settings I know I shouldn't for testing that may not make much difference:

In fennec about:config as a url is how you get to firefox's advanced settings. I've got the memory space just about as low as itwill go, yesterday I couldn't even see my post or login, so I just slightly increased the memory.

In about:config type javascript

There are probably 100 settings or more, and I've changeh quite a vast number of them:

I've changed so many that I'll even list one's that may not need to be changed.

The first option listed is

Javascript.opaqueblocking...

Default Fasle, Custom true. Probably don't need to change.

Javascript.options.asmjs

Default true, custom false. No idea what it is or what it does.

Java...asyncstack

Default true custom false, no idea

baselinejit

Default true custom false no idea

blinterp

Default true custom false no idea

compact_on_user_inactive delay

Default 30000 (30,000) custom 528

experimental.weakrefs.expose.cleanup_Some

Default false custom true no idea

options.gc_delay

Default 4000 custom 528 no idea

gc_deloy.first

Default 10000 custom 5280

gc_delay.full

Default 60000 custom 24000 no idea

gc_delay.interslice

Default 250 custom 180

gc_on_memory_pressure

I wonder what gc means"graceful close"?

Default False custom true

Here's a good one

inlining_bytecode_max_length

Default 130 custom 64

ion

Default true custom false no idea

I have changed some ion settings, as well as for asmjs, but since it is false here I'll leave them out. If you'd like no know I'll add them too, re-enable those options and report back performance differences.

JIThints (Just in Time compilation) no idea what hints are

Default true custom false

max_thread_stack_quota_cap

Default (seems way too high)

2097152 custom is 528710

I would suggest even lowel values like 1000 or 4000 as my setting was just to knock down the default a bit. I may try very low values on it as well.

mem.gc_allocation_threshold_mb

Any setting with "mb" I feel I can understand a little bit, but still no idea what gc is.

Default 27 (surprising) custom 24. Sunce it is so close to default, I'll try lowering to 18.

mem.gc_heap_growth_factor

Default 50 custom 1. I bet the 50 is part of the heavy javascript issues. No idea though, just guessing.

mem.gc_helper_thread_ratio

Default 50 custom 18

I would suggest leaving this at 50, I would imagine cpu threads are useful to increase performance, but as you can guess, no idea.

mem.gc_high_frequency_large_heap_growth

Default 150 custom 18

I would recommend even smaller values, until sites stop working, like this one, and go just above it. For now, sites work well, but I haven't tested youtube yet, which is extremely heavy in the web browser.

mem.gc_high_freq..._small_heap_growth

Default 300 (might not be a good default)

custom 6

mem.gc_high_freq..._time_limit_ms

Alright I know what ms are!

Default 1000 custom 5280. No idea, try higher values like 10000 or lower values like 500.

mem.gc_incremental

I've changed a few of these too, but have set it to false, default is true

mem.gc_large_heap_size_min_mb

Default 500 (way too large) custom is 18

I don't think you can go much lower than my custom settings on these "heap" mb settings. I've already had to step them up to use the website without a "broke the matrix" error when trying to use the text entry box.

mem.gc_low_freq..._heap_growth

Default 150 (large?) custom 1

I don't think you want a heap of javascript to get heavier than what it is already.

mem.gc_malloc_threshold_base_mb

Default 38 (reasonable) custom 15

Maybe this could go a hair lower.

mem._gc_max_empty_chunk_count

Default 30 custom 2 no idea

mem.gc_max_helper_threads

I do understand this one

Default (number of CPU threads of your device) custom 4, and will try less. Could help battery drain with less cpu load.

mem.gc_parallel_threshold_marking_mb

Default 16 custom 24

Looks like I went the opposite way on this one, try lower settings instead.

mem.gc_per_zone

Default true custom false

mem.gc_small_heap_incremental_limit

I think I have this disable with another setting but if not:

Default 150 custom 11

mem.gc_small_heap_size_max_mb

Default 100 custom 24

These type of "max mb" settings for javascript seem to be the most helpful, and I highly doubt you can use lower settings than what I've, but try anyway.

mem.gc_urgent_threshold_mb

Default 16 custom 15 try lower values

mem.incremental_weakmap

Default true custom false

Hero's my favorite!

javascript.option.mem.max

Default -1 custom 42 (-1 means auto

which has been proven to not be suitable for low memory devices)

mem.nursery.min_kb

Default 256 custom 32

What a nice setting name, nursery.

native_regexp (regular expressions)

Default true custom false

shared_memory

Default true custom false

site_based_pretenuring

Default true custom false

source_pragmas

custom false

I also disabled all the "spectre" stuff which is designed to secure the browser. Leave them enabled.

wasm

Custom false, what is javascript wasm?

I also set false to wasm baselinejit

watchtower.megamorphic

Custom false

All these changes have EXCEEDINGLY increased performance, and pages that were once completely unscrollable are so responsive it's nearly as fast as loading the same page via a text-only command-line browser like lynx or w3m.

If you are experiencing slow pages, and NoScript isn't doing nearly enough, give these changes a go.