제 이름은 Davide Faconti이고 내 직업은 세계 최고 중 하나입니다. 저는 로봇 공학 에서 일합니다.
이 블로그/저장소는 여가 시간 에 유지되며 내 작업과 관련이 없습니다. 그러므로 의견 (및 밈)은 모두 내 것이며 어떤 식 으로든 내 고용주를 대표하지 않습니다 .
나는 C ++ 프로그래밍과 오픈 소스를 좋아 하며이 "일기"는 OSS 커뮤니티에 대한 작은 기여입니다.
C ++에서 코드를 최적화하는 것은 아무도 저항 할 수없는 것입니다. 당신은 당신이 당신의 조직에 동시에 유용한 일을하고 있다고 척 할 수 있습니다!
이 저장소에서는 코드를 개선하고 C ++ 에서 불필요한 오버 헤드를 제거하기위한 몇 가지 간단한 디자인 패턴을 기록합니다.
노련한 C ++ 전문가라면 이미 자신의 규칙 세트가있을 것입니다.
이 규칙은 동료에게 나쁜 ASS/Rockstar/10X 엔지니어처럼 보이도록 도와줍니다.
당신은 우연히 std :: vector <> :: 루프 전에 예비를 삭감하고, 끄덕이며, 웃으며, 성능 개선과 팀원의 놀라움을 바라 보는 사람입니다.

바라건대,이 저장소의 예가이 구루의 상태를 달성하는 데 도움이 될 것이며, 부작용으로 지구 온난화로부터 지구를 구해 쓸모없는 CPU 사이클을 낭비하지 못하게합니다.
불행히도, 지구 반대편에있는 누군가가 비트 코인을 채굴하거나 파이썬 으로 신청을 쓰기 시작할 것이며 전기를 절약하려는 모든 노력은 아무것도 아닙니다.
농담, 파이썬 개발자, 우리는 당신을 사랑합니다!
해설자 : "그는 농담이 아니었다 ..."
성과에 관심이있는 사람이 가장 먼저해야 할 일은 다음과 같습니다.
나와 내 동료들은 코드가 느린 이유에 대해 거의 항상 잘못되었습니다.
때때로 우리는 옳지 만 Refactoring이 성능을 향상시키는 방법을 미리 알기가 어렵습니다. 좋은 프로파일 링 도구는 몇 분 안에 "낮은 교수형 과일"을 보여줍니다 : 최소 작업, 최대 이점!
요약 : 10 분 프로파일 링은 몇 시간의 추측 및 리팩토링을 절약 할 수 있습니다.
Linux의 "Goto"도구는 핫스팟 및 힙입니다. Windows에도 비슷한 도구가 있다는 것을 알고 있습니다.

벤치 마크 전쟁에서, 당신이 군인이라면, 이것들은 당신의 소총과 수류탄입니다.
코드의 어느 부분이 최적화되어야하는지 알면 Google Benchmark를 사용하여 매우 구체적인 클래스 또는 기능에서 소비 된 시간을 측정 할 수 있습니다.
Quick-bench.com에서 온라인으로 Google Benchmark를 실행할 수도 있습니다.

좋은 코드를 작성하는 것은 치아를 닦는 것과 같습니다. 너무 많이 생각하지 않고해야합니다.
그것은 당신이 훈련 해야하는 근육이며, 시간이 지남에 따라 더 강해질 것입니다. 그러나 걱정하지 마십시오. 일단 시작하면 놀랍게도 간단하고 다양한 사용 사례에서 작동하는 반복 패턴을보기 시작합니다.
스포일러 경고 : 가장 사랑받는 트릭 중 하나는 힙 할당 수를 최소화하는 것 입니다. 당신은 그것이 얼마나 도움이되는지 전혀 모릅니다.
그러나 무언가를 절대적으로 명확하게 만들어 보자.
다시 말해, 코드를 변경하기 전에 두 번 생각하면 2.5% 더 빠르게 실행될 수 있다고 생각하기 때문에 디버그하기가 덜 읽기 쉽거나 디버그하기가 더 어려워집니다.
보다 편안한 읽기 경험을 보려면 다음을 방문하십시오 : https://cpp-optinizations.netlify.app
기본적으로 const 참조를 사용하십시오.
시맨틱 (TODO)을 움직입니다.
반환 값 최적화 (TODO).
기본적으로 std :: vector <> :: 예비를 사용하십시오
"대학에서 링크리스트리스트를 배웠습니다. 사용해야합니까?" 누프.
당신은 그것을 위해 std::map<> 필요하지 않습니다.
작은 벡터 최적화
문자열은 (거의) 벡터입니다
걱정하지 않을 때 : 작은 문자열 최적화.
문자열 연결 : operator+ .
std::string_view : 첫눈에 반한 사랑 (todo).
예 : 2D/3D는 올바른 방법을 변형시킵니다.
2D 매트릭스 위에 반복 : 덜 우아하고 성능이 뛰어납니다.
boost::container::flat_map 시도했습니다. 다음에 무슨 일이 있었는지 상상하지 못할 것입니다.PCL에서 포인트 클라우드를 필터링하는 더 간단하고 빠른 방법.
패스트 팔린 드롬 : 조건부 지점 비용
이 작업은 CC By-SA 4.0에 따라 라이센스가 부여됩니다