단위 테스트 및 조롱을 수용하려면 메서드 및 속성을 가상으로 선언하는 것이 일반적입니다. 가상이 아닌 가상을 선언 할 때 성능에 미치는 영향이 있습니까?가상 메서드의 성능 영향
6
A
답변
9
일반적으로 가상 메소드가 Callvirt Opcode를 사용하여 호출되는 반면 가상 메소드는 표준 Call Opcode를 사용하지 않는다는 차이점이 있습니다. Call Opcodes는 Callvirt보다 확실히 빠르지 만, 필자는 이걸 바탕으로 설계 결정을 내릴만큼 충분히 충실하지 못했습니다.
Premature optimization is the root of all evil.
1
아니요.
주목할 부분이 아닙니다.
1
나는 구체적인 몰라,하지만 난 당신이 거기에 애플 리케이션의 99 %에 대해 걱정할 필요가 없습니다 것을 알고있다.
btw - 클래스 대신 모의 인터페이스를 선택하면 가상 메소드가 필요하지 않습니다.
행운을 빌어 요, 톰
당신은 모든 걸`virtual` 모든 클래스`open`을하고있다 testability_에 대한 _design 생각+0
당신은 인터페이스를 가상 방법으로 사용하는 것과 같은 간접적 인 페널티가 있습니다. – leppie
관련 문제
- 1. System.IO.ReadAllxxx/WriteAllxxx 메서드의 성능
- 2. EntityFramework에있는 엔티티 인스턴스의 성능 영향
- 3. PostgreSQL : 여분의 열의 성능 영향
- 4. 성능 카운터의 성능에 미치는 영향
- 5. -fno-strict-aliasing의 성능 영향
- 6. 큰 변수 테이블의 성능 영향
- 7. Delphi에서 제스처 인식의 성능 영향?
- 8. 호출 대리자 대 메서드의 성능
- 9. 상속의 성능 영향 (is-a) v C++의 집계 (has-a)
- 10. C++ 가상 함수 성능
- 11. Android 가상 장치 성능
- 12. 성능 연결된 SQL Server에보기를 만들 때의 영향
- 13. propel 연결을 닫지 않을 때의 성능 영향
- 14. 인덱스 정의 : 어떤 컬럼 및 성능 영향?
- 15. 조립 횟수와 관련된 성능 및 메모리 영향
- 16. PHP 변수를 복사 할 때의 성능 영향
- 17. 다른 데이터베이스의 테이블 조인의 성능 영향
- 18. 문화 불변 자원을 사용한 성능 영향
- 19. 마커 대 벡터 점 - 성능 영향
- 20. SQL 서버 DMV를 쿼리하는 성능 영향
- 21. 가상 메서드의 모든 재정의 후 코드 실행
- 22. 날짜 범위 쿼리 메서드의 성능 비교
- 23. 가상 컴퓨터 파일 액세스 성능
- 24. Windows Azure 가상 컴퓨터 성능
- 25. Boost.Variant 대 가상 인터페이스 성능
- 26. 영향
- 27. 병합 복제 및 컨트롤러에 대한 성능 영향 SQL Server
- 28. 응용 프로그램의 성능에 미치는 영향
- 29. C#에서 MSV2008을 사용하여 가상 메서드의 서명이 변경되면 재정의 된 메서드의 서명을 자동으로 변경하는 방법?
- 30. 성능 최적화를위한 C++ 용 가상 컴퓨터
? 흠 ... –
@StefanHanke : 영업 사원이 그것이 * 단지 *라고 생각한다고 말하지는 않습니다. –
그래, 필요하지 않을 때해야한다고 생각하지 않는다 ... 적절할 때 테스트 가능성을 향상시킬 수있는 유일한 방법이다. – TGH