Perhaps the "long and difficult" multi-process architecture will be the ultimate fix, but it'd be great in the meantime to get some tiny hint about which tabs are sucking up memory/cycles. This could be very crude - a count of the tab's timeout-firings, object allocations or whatever - and it would still allow significant self-help.
For memory, you can already look at about:memory.
For performance, if you are running Nightly, you can use the Gecko profiler that basically tells you everything about what takes time. Note that, by design, the Gecko profiler is activated only on Nightly releases.
But yes, both features are rather hardcore. We are working on more user-friendly solutions, too, although I have no idea of the roadmap.