In addition to the other recommendations, don't have the PS1 prompt run commands everytime the prompt is generated. For example, you don't need to run commands each prompt to figure out your username and hostname as likely they won't or cannot change in the same shell session. For example:
PS1='`whoami`$ ' vs. PS1=`whoami`"$ "