다음은 일상 업무에서 사용되는 코드입니다. 우리는이 두 가지를 호출하는 경우 다음 C++ 성능 : 객체 대 함수의 참조로 전달
// In class Price.hpp
private:
bool value = false;
// others
std::vector<int> vec;
...
public:
getBoolValue() { return value; }
setBoolValue(bool iValue) { value = iValue };
// a lot of setters & getters for the others
...
이 MAIN.CPP에서
// First proposition
void Compute::computeAmount (const Price & iPrice) {
if (iPrice.getBoolValue()) {
// do something
}
}
// Second proposition
void Compute::computeAmount (const bool iValue) {
if (iValue ) {
// do something
}
}
Compute.cpp
다음// In class Compute.hpp
// First proposition
void computeAmount (const Price & iPrice)
// Second proposition
void computeAmount (const bool iValue)
Compute.hpp
입니다 : 여기 클래스 가격입니다 이런 식으로 다른 기능 :Compute aCompute;
Price aPrice;
// Do a lot of set for those two
....
// Discussion
aCompute.computeAmount (aPrice);
aCompute.computeAmount (aPrice.getBoolValue());
가격이 매우 큽니다. 그래서 우리가 퍼포먼스 (큰 객체의 참조에 의한 전달과 멤버 함수의 반환 값에 의한 전달)에 대해 이야기한다면 어느 쪽이 당신의 의견에 더 효율적인가? 나는 그것이 동일하고 성능 측면에서 차이가 없다고 말할 것입니다.
조치하십시오! – user0042
"당신의 의견에 더 효과적인 사람이 있습니까? _"이 경우에는 왜 _opinions_가 중요합니까? 프로파일 링하고보다 효율적으로 자신 만의 것을보십시오. –
자신의 프로파일 러를 작성하고 측정하십시오. 간단한 프로파일 러를 작성하기 쉽습니다. – Asesh