If I want to improve the performance of my computer, or optimise the performance of a computer yet to be bought, how can I determine what hardware I would need to choose/upgrade?

  1. Processor clock speed and number of cores,
  2. Type and quantity of RAM,
  3. Type and properties of graphics card or chipset,
  4. Type and properties of storage medium (hard disc drive vs. solid state storage),
  6. Perhaps a combination of the above,
  7. Others?

For example, I recently upgraded my laptop storage (HDD→SSD) and RAM (2 GB→8 GB), based on generic recommendations and on the fact I don't know how to upgrade anything else. It led to a tremendous improvement in performance. Suppose that I have a machine where theoretically any component can be upgraded, how would I go to determine the current bottleneck/limiting factor if I want to improve performance further? For example:

  • Time to boot,
  • Time for a complicated operation on photo editing,
  • Time to compile a LaTeX document,
  • Time to start Firefox,
  • Time to start playing a video,
  • and other things.

With tools like top I can measure CPU and RAM usage. That tells me what processes are using my current resources, but not what limits them from running 10% faster, 2× faster, 10× faster.

  • 1
    On internet you can find some benchmarks tools/suites (i.e. this one, never tried and googled just now). They can test (and stress) the system for you, giving hints on where your computer suffers more. In practical cases do not expect 10x faster (if you do not put your swap and latex files on a ram disk... ;-)). Good Luck. ps> do not forget after top htop for processes, iotop for I/O, iptraf or ntop for network...
    – Hastur
    Jul 7, 2016 at 13:54
  • @Hastur 10× is an extreme example, but theoretically there always is a bottleneck somewhere. My laptop upgrade did feel like a 10× speedup, but it was probably less than that.
    – gerrit
    Jul 7, 2016 at 13:58
  • Why the downvote?
    – gerrit
    Jul 7, 2016 at 14:14
  • Someone is probably thinking that your question is too wide... (and somebody else just asked to close for the same reason). Indeed it is.
    – Hastur
    Jul 7, 2016 at 14:16
  • Note that hard drives are "hard disks" (with a 'K'), whereas CDs and DVDs are "discs" (with a 'C'). Thus, "hard disc drive" is a misnomer.
    – ErikE
    Jul 7, 2016 at 15:23

1 Answer 1


It depends on your particular use of your computer.

Different programs stress the hardware in different ways and performance may increase according to the upgrades that best satisfy each program's needs.

I see two main ways:

  • Benchmarks Tools/Suites
    You can search the internet for benchmarks tools/suites (e.g., this one, which I googled just now and have never tried). They can test (and stress) the system for you, giving hints on where your computer suffers the most.

They can cover a wide range of computer uses, and some of them are specialized.

  • The Old, Hard Way
    Of course, you can search for the bottleneck "by hand". You can see when your machine starts to suffer poor performance when you are using that computer your personal way.

Good avenues (to start with) are top, and better, htop[2], for processes and memory requests, iotop[3] for input/output operations, and iptraf or ntop[4] for network use analysis.

Further Readings (as emerged from comments):

Not the answer you're looking for? Browse other questions tagged .