Targeting system configuration
Although we want to develop the best application that will run fast on all machines in all circumstances, we know that, practically speaking, this isn't possible. It is best to develop a minimum system requirement standard early in our development cycle, to allow us to manage application performance appropriately during development.
One other option is to enable/disable features based on machine capabilities. This way, if a user has less than minimum configuration, we can disable features such as those that require higher CPU/memory consumption, as needed. We can notify the user about the disabled features list at application startup, so that they are aware that they are not getting the full-blown application performance.
Alternatively, we can define different modes of our system. We can determine the machine configuration and use the appropriate mode suitable for the configuration of that machine. For less powerful machines, there could be modes with lesser...