• Background jobs or cron jobs

    • Job: Independent piece of code that runs separately
    • Cron job: Job that runs on regular schedule (nightly, every 10 minutes)
    • Background jobs run asynchronous tasks that are too slow for the client to just wait
    • Background jobs perform tasks for users (i.e. big export file) or for a system (i.e. updating photo and propagating it to the system)
  • Cache

    • Memcache: Popular caching system
  • Lazy loading: Defer heavy/expensive loading/calculation

    • Example: You want to remove curse words in all content. Instead of running it on all posts from the get-go; the script only runs when it is viewed.
  • SQL optimization

    • Split across multiple tables to avoid duplication then recombined before it can be displayed by the product
    • Denormalize copy of data: Improve read speeds, slower write speeds. Might affect development time b/c of bugs.
  • Improving performance

    • Add limits: Show x features instead of all
    • Change product to something that requires fewer calculations at a time
    • Invest in more engineering time to accelerate processing