Performance Checklist

  • Use a relay server to examine data transfers.
  • Reduce the number of messages transferred.
    • Cache data and objects to change distributed requests to local ones.
    • Batch messages to reduce the number of messages transferred.
    • Compress large transfers.
    • Partition the app so that methods execute where their data is held.
    • Multiplex communications to reduce connection overhead.
    • Stub out data links to reduce the amount of data required to be transferred.
  • Design the various components so that they can execute asynchronously from each other.
    • Anticipate data requirements so that data is transferred earlier.
    • Split up data so that partial results can be displayed.
    • Avoid creating distributed garbage.
  • Optimize database communications. app partitioning is especially important with databases.
    • Use statically defined database queries.
    • Avoid database transactional modes if possible.
    • Use JDBC optimizations such as prepared statements, specific SQL requests, etc.
  • Try to break down the time to execute a Web Service into client, server, and network processing times, and extract the marshalling and unmarshalling times from client and server processing.
  • Don't forget about DNS resolution time for a Web Service.
  • Try to load-balance high-demand Web Services or provide them asynchronously.
  • The granularity of a Web Service is important. For more scalable and better performing Web Services, create coarser services that require fewer network requests to complete.
   
Comments