레딧-학습 프로그램-로 알려진 해킹”더프'의 장치”실제 응용 프로그램에서 사용?

더프의 장치는(거의)항상 우리가”마이크로 최적화”라고 부르는 예입니다.”마이크로 최적화의 전형적인 예는 응용 프로그램의 성능에 대한 인식 가능한 향상을 가져 오지 않고 코드 기반을 복잡하고 복잡하게 만드는 것입니다.

단일 루프,단일 작은 기능 등을 최적화하는 더프의 장치와 같은 대부분의 트릭은 마이크로 최적화입니다. 당신은 일반적으로 이러한 트릭을 사용하여 측정 가능한 개선을 받고 있지 않은 것을,요즘 너무 빌어 먹을 빠르다. 당신은 확실히 당신의 코드를 이해하고 유지하기가 더 어려워지고 있습니다. 요즘은 프로세서 속도 외에도 컴파일러가 정말 똑똑합니다. 그들은 당신이 당신의 소스 코드를 방해 할 필요없이 컴파일 된 프로그램을 최적화하기 위해 이와 같은 트릭을 할 수 있습니다.

요즘 대부분의 성능”문제”는 실제로 개별 루프보다 높은 수준에 있습니다. 데이터 모델이 디스크와 메모리에 어떻게 표현되는지,디스크와 램 간의 스와핑을 제한 할 수있는 방법,네트워크를 통해 직렬화,전송 및 역 직렬화 된 데이터의 양을 최적화하는 방법 등을 생각해보십시오. 여기에서,당신은 더 높은 수준의 알고리즘에 들어가 당신이 진정으로 중앙 처리 장치 바인딩 문제를 해결하기 위해 복용 접근. 더프의 장치 같은 것을 하나의 루프를 최적화하는 지점에 도착하는 것은,오늘,거의 항상 할 수있는 잘못된 일이다.

답글 남기기

이메일 주소는 공개되지 않습니다.