Hi, I'm Capricorn's Little ~ ~
To do a good performance test, first of all, I think we must understand several factors that affect performance.
See a variety of materials, about the performance of a lot of knowledge. I'd like to make a small summary.
from the program design, time , divided into data transmission time, storage time and processing time.
Therefore, for time, we can consider the following methods to improve performance:
1) Reduce the complexity of the algorithm itself "for example, to transform a complex object into an aggregation relationship: splitting a complex class into a new class formed by the aggregation of two or more than two classes";
2) Transfer time: If data transfer between different processors becomes the main bottleneck that affects performance, you should re-examine the distribution of objects on different processors. The goal of the adjustment is to reduce the amount of data transmitted between different processors, and the other is to shorten the transmission path;
3) Access time: If the system performs certain functions and requires extensive and frequent access to external storage devices, a cache space can be designed in the memory space in the object-oriented design approach, so that the data that is used frequently will have more opportunities to be stored in the cache space;
4) Processing time: The encapsulation of an object prevents the object's properties from being directly accessed by the service of another object, and can only be done through message delivery. If there are some classes with frequent message passing, they can be merged into one class by merging methods, and some properties can be added in the program design to reduce the amount of repeated computation.
from the system performance of several indicators , including: Response time, throughput, user concurrency, resource utilization
1) Response time: Refers to the time the system responds to user requests.
From the user's perspective, response time = render time + system response time. Rendering time is the amount of time the client's browser will need to render the page when it receives data from the Web site. The system response time is the amount of time that the client requests to the client to receive the data sent by the server. Obviously, when we test the performance of a system software, the rendering time is related to the client's own hardware conditions and browser, we are more concerned about the system response time.
So let's take a look at the system response time now. As you can see, the system response time = Application Server processing time + database server processing time + network data transfer time.
With this analysis, we can clearly see a few key factors that affect response time.
2) Throughput: Refers to the number of requests that the system processes within a unit of time.
For a single-user system, the response time can be a good measure of the performance of the system, but for concurrent systems, throughput is often the most good performance metric. The larger the throughput of the system, the more users or system requests are completed in the unit time, and the resources of the system are fully utilized.
throughput = number of concurrent/average response times
3) Number of concurrent users: refers to the number of users who normally use the system function that the system can host concurrently.
The number of concurrent users is commonly used to measure server concurrency capacity and synchronization coordination. This indicator is the number of users who are doing business operations at the same time during the system run. This amount depends on the user's operating habits, the business operation interval, and the response time of a single transaction. The number of concurrent users of applications with low frequency is generally about 5% of the number of online users. The number of concurrent users of the application system with high frequency is generally about 10% of the number of online users.
For the website system, there will be three statistics on the number of users: number of registered users, number of online users, and the number of simultaneous requests of users. We are generally concerned with the latter two figures.
4) Resource utilization: reflects the average resource occupancy over a period of time
For a quantity of 1 resources, resource utilization can be expressed as the ratio of the elapsed time to the whole period;
For resources with a quantity greater than 1, resource utilization can be expressed as the ratio of the average number of resources consumed during that time to the total number of resources.
Common system resources include: CPU, Memory, disk , network, and so on.
This is summed up first, and will continue to be updated later.
Feel free to tell me if you have any questions and suggestions.
I am a Capricorn little ~ ~
Summary of factors that affect software system performance