당신이해야하는 경우 시작 성능에 대한 생각, 당신은 문제가있어. 항상 성능에 대해 생각해야합니다. 사실, 나는 좋은 프로그래머들이 의도하지 않았을 때에도 "7 초마다 섹스에 대해 생각하는 남성들"방식으로 퍼포먼스에 대해 생각할 것이라고 생각한다.
중요한 것은 모든 생각을 바탕으로 어떤 행동 을 취할 것인가 입니다. 생각은 싸지 만 행동은 코드를 깨뜨리고 마감일을 날려 버릴 수 있습니다.
대부분의 경우 현명한 행동은 아무것도하지 않는 것입니다. 성능 문제를 관찰 할 수있을 정도로 코드가 자주 호출되지 않는 것으로 나타났습니다. 컴퓨터마다 한 번씩 실행되는 시작 코드 일 수도 있습니다. 잠재적 사용자 기반의 1 %, 아마도 데이터베이스 액세스 속도가 느린 바다에서 익사 한 약간의 중복 서버 코드 일 수도 있고, 중요하지 않은 코드 섹션의 정수 할당 일 수도 있습니다.
종종 주어진 작업으로 인해 간단한 변경으로 해결할 수있는 성능 문제가 발생할 수 있다고 생각합니다. 예를 들어, 모든 요청에 대해 복잡한 SQL 쿼리를 실행하거나 사전에서 동일한 데이터 조각을 두 번 요청하면 나쁘다는 잔소리가 있습니다. 최적화 기술에 대한 지식이 유용한 곳이며 가장 놀라운 결론이 나올 것입니다.
코드의 성능을 거의 확실히 향상시키는 빠른 기술에 대해 알고 있다면 그렇게하지 마십시오.
지금 생각하면 5 분 후에 확실히 할 수 있습니다. 코드에서 (또는 // TODO
주석으로) 코드를 유지하면 코드를 더 깔끔하게 유지하고 다른 기능을 수행하기 위해 이전 시간을 절약 할 수 있으며 나중에 해당 코드를 버리는 경우 시간을 낭비하지 않아도됩니다. 테스트 할 때 원래 코드가 성능 문제를 일으키는 것으로 판명되면 돌아가서 빠른 기술을 적용하십시오.
여기서는 더 빠르기 때문에 관용적 인 코드 작성을 피해야한다고 말하지 않습니다. 생산성과 가독성을 향상시키고 버그를 줄이는 모범 사례에 따라 관용적 코드를 작성하십시오. 관용적 인 책별 코드와 더 빠르고 쉽게 작성된 대안 중에서 선택할 수 있다면 항상 속도 대신 가독성을 찾으십시오.
유일한 어려운 상황은 코드 성능을 향상시킬 수있는 쉬운 방법이없는 것처럼 보이지만, 코드가 제공되는 즉시 코드 조각이 끊어 질 수 있다는 것은 매우 명백합니다. 사이트의 페이지 당 또는 유사하게 무서운 것 여기서 실제로 멈추고 더 생각해야 할 곳입니다. 일반적으로 로컬 규모로는 해결할 수없는 아키텍처 문제입니다. 빠른 스파이크 또는 프로토 타입으로 의심을 확인하고 유사한 경험과 일반적인 솔루션을 찾고 아키텍처 변경 또는 기능 저하를 고려하십시오.