Skip to content

Program optimization

프로그램 최적화(program optimization) 또는 소프트웨어 최적화(software optimization)는 정보 공학에서 시스템을 수정하여 어떠한 면의 작업이 더 효과적으로, 또는 자원을 덜 사용하도록 만드는 작업을 말한다. 이를테면, 컴퓨터 프로그램은 더 빠르게 실행되거나 기억 장치나 자원을 덜 차지하게 하여 운영케 하거나, 전력을 덜 쓰게 함으로써 최적화될 수 있다. 이러한 시스템은 인터넷과 같은 완전한 네트워크나 컴퓨터의 모임으로서 단일의 컴퓨터 프로그램이 될 수 있다.

Performance Tuning

Performance tuning is the improvement of system performance. This is typically a computer application, but the same methods can be applied to economic markets, bureaucracies or other complex systems. The motivation for such activity is called a performance problem, which can be real or anticipated. Most systems will respond to increased load with some degree of decreasing performance. A system's ability to accept higher load is called scalability, and modifying a system to handle a higher load is synonymous to performance tuning.

Systematic tuning follows these steps:

  1. Assess the problem and establish numeric values that categorize acceptable behavior.
  2. Measure the performance of the system before modification.
  3. Identify the part of the system that is critical for improving the performance. This is called the bottleneck.
  4. Modify that part of the system to remove the bottleneck.
  5. Measure the performance of the system after modification.
  6. If the modification makes the performance better, adopt it. If the modification makes the performance worse, put it back the way it was.

This is an instance of the measure-evaluate-improve-learn cycle from quality assurance.

A performance problem may be identified by slow or unresponsive systems. This usually occurs because high system loading, causing some part of the system to reach a limit in its ability to respond. This limit within the system is referred to as a bottleneck.

A handful of techniques are used to improve performance. Among them are code optimization, load balancing, caching strategy, distributed computing and self-tuning.

Compiler

Memory

Hardware

CPU

Networking

High Performance Browser Networking

Performance is a feature. This book provides a hands-on overview of what every web developer needs to know about the various types of networks (WiFi, 3G/4G), transport protocols (UDP, TCP, and TLS), application protocols (HTTP/1.1, HTTP/2), and APIs available in the browser (XHR, WebSocket, WebRTC, and more) to deliver the best—fast, reliable, and resilient—user experience.

HTTP/Web

네트워크 토폴로지 (Network topology)

Programming language

Database

See also

Favorite site

References


  1. Handling_traffic_on_the_Naver_main_page.pdf 

  2. How-to-check-single-server-load-average.pdf