여기에 펑키 한 문제가 있습니다. 몇 가지 간단한 타이머를 사용하여 객체 생성을 벤치마킹합니다. 내 코드 기반은 프로토 타입이 아니고 완전한 프레임 워크가 될 때가 서서히 멀어지고 있습니다. 이를 위해서는 최상위 레벨에서 간단한 구조체를 초기화해야한다. 즉, 개체 초기화를 벤치마킹 할 수있는 방법을 찾을 수 없다는 것을 의미합니다. 이는 매우 중요합니다. 이상적인 세계에서는 멤버 초기화 목록에서 일반 void 함수를 호출 하시겠습니까?
, 나는의 라인을 따라 뭔가 할 수있는 :struct Potato {
Potato()
: benchmark::start()
, some_int(42)
{
/* Some more stuffs */
benchmark::stop();
}
int some_int;
};
당신은 아이디어를 얻을를, 나는 멤버 초기화리스트는 벤치 마크 바랍니다. 누구든지 소프트웨어 전체에서 전역 (정적) 인 객체를 사용하는 방법에 대한 팁이 있습니까? constexpr 함수를 사용하여 아무 소용이 실험했다. 또한 간단한 함수에서 객체 컬렉션을 반환 할 때 (make_tuple에서) 복사 생성자 문제가 발생합니다.
감사의 말씀 감사합니다.
니스! 고마워. 또한 흥미로운 http://stackoverflow.com/questions/17375114/c-temporary-variables-in-initilization-list를 발견했습니다. 이 둘의 혼합은 내가 믿는 트릭을 수행해야하며, 동작을 해제하기위한 일종의 정의가 있어야합니다. 좋은 날 :) – scx
개인 상속도 유용 할 수 있습니다 (상속 벤치마킹의 경우.) – Jarod42