WPF 응용 프로그램이 있고 디버깅을 위해 콘솔에 표시되는 메시지가 있습니다. 이것은 Windows 응용 프로그램으로 구성되고 콘솔이 표시되지 않을 때 응용 프로그램의 성능에 영향을 줍니까?은 Console.WriteLine Windows 응용 프로그램의 병목 현상입니까?
답변
Console.WriteLine()의 실제 병목 현상이 실제로 콘솔에 기록됩니다. 특히 콘솔을 스크롤해야 할 때 은 실제로입니다. 또한 Visual Studio 호스팅 프로세스에서 콘솔이없고 출력 창이 표시 될 때 출력을 캡처하는 상당한 오버 헤드가 있습니다.
앱을 배포 한 후에도 역할이 없습니다. 그러나 예, 모든 메서드 호출이 만들어지고 문자열이 형식화되는 중입니다. Windows API 함수가 콘솔이 없다는 것을 알게되면 가능한 마지막 순간에만 비트 버킷에 들어갑니다.
디버그 빌드에서 실행할 때 현재 앱에 허용되는 퍼센티지가있는 경우 걱정하지 마십시오. 디버거가없는 릴리스 빌드에서 별 모양의 성능이 떨어지는 경우 Console.WriteLine()이 원인 일 수 있다고 생각되면 Search + Replace to Debug.Print()로 주저하지 마십시오.
병목 현상은 코드에서 가장 느린 지점이라는 것을 의미합니다. 우리가하는 모든 것을 알지 못한다면 그것을 알 수 없습니다.
성능에 미치는 영향은 있습니까? 그렇습니다. 아무 것도하지 않고있다. 뭔가를하고있다. 프로그램의 병목 현상이되기에 충분할 것인가? 나는 그것을 의심한다. 눈에 띄는 영향을 미치기에 충분할 것인가? 가능한 일이지만 가능성은 희박하다. 그것은 모두 당신의 프로그램이 무엇을하고 있는지에 달려 있으며 콘솔에 얼마나 쓰는지에 달려 있습니다. (시간이 걸리는 것을 알아 차리기 위해서는 꽤 많은 시간이 필요합니다.)
디버그시 출력을 볼 수 있도록 Console.WriteLine
이 아닌 Debug.WriteLine
을 사용할 수 있지만 릴리스 빌드를 컴파일하면 해당 명령문이 인쇄되지 않습니다.
무언가를하는 것은 아무 것도하지 않는 것보다 시간이 오래 걸립니다.
null 콘솔에 텍스트를 쓰는 행위는 주요한 성과는 아니며, 매개 변수로 전달할 내용과 어떤 볼륨이 될 수 있습니다.
콘솔 출력을 사용하거나 사용하지 않고 실제 성능을 측정하여 사용 패턴이 허용 오차 범위 내에 있는지 직접 확인하십시오.
Debug.WriteLine()은 릴리스에 맞게 빌드 할 때 자동으로 제외되므로 요구 사항에 따라 더 나은 선택이 될 수 있습니다.
자신의 로깅 프레임 워크를 빌드하고 최적화하려는 시도는 거의 최선의 방법이 아닙니다.
log4net과 같은 것을 보셨나요? 콘솔에 기록하는 것을 포함하여 다양한 appender를 구성 할 수 있습니다. 로깅 오버 헤드를 줄이기 위해 비동기 애펜더를 빌드 할 수도 있습니다.
에릭
- 1. 웹 응용 프로그램의 병목 현상
- 2. C#에서 사용자 지정 특성 사용은 메모리/성능 병목 현상입니까?
- 3. Windows 서비스 내의 Console.WriteLine()?
- 4. Windows Forms 응용 프로그램 내 Console.WriteLine 사용
- 5. 아이폰에서 OpenGL 응용 프로그램의 병목 현상 찾기
- 6. 웹 응용 프로그램의 병목 현상이 있습니까?
- 7. 은 장기간 정적 작업에 병목 현상이 있습니까?
- 8. Windows 응용 프로그램의 오버레이
- 9. Windows Form 응용 프로그램의 WCF 호스트
- 10. 클릭으로 console.writeline
- 11. windows form .. console.writeline() 콘솔은 어디에 있습니까?
- 12. Windows 기반 응용 프로그램의 LoadTest
- 13. Windows 스토어 응용 프로그램의 mtomMessageEncoding
- 14. C# Windows 응용 프로그램의 Mediaplayer
- 15. Flex 응용 프로그램의 Windows 인증
- 16. Windows 8 응용 프로그램의 배포
- 17. Windows 모바일 응용 프로그램의 암호화
- 18. Windows 작업 응용 프로그램의 TaskDelay
- 19. Windows 전화 응용 프로그램의 httpcontext
- 20. Windows 응용 프로그램의 사용 빈도
- 21. Windows 응용 프로그램의 제어 흐름
- 22. Windows 응용 프로그램의 두 텍스트 파일을 비교하십시오.
- 23. Windows Forms 응용 프로그램의 글꼴 선택
- 24. C# Windows 응용 프로그램의 대역폭 조절
- 25. Windows 응용 프로그램의 불규칙한 소켓 오류 (10054)
- 26. 콘솔 응용 프로그램의 winform
- 27. Windows 응용 프로그램의 웹 서버 통합
- 28. Windows Forms 응용 프로그램의 HTTP Post C#
- 29. Windows 응용 프로그램의 보안 MS Access 데이터베이스
- 30. 모듈 식 응용 프로그램의 Windows Workflow Foundation
글쎄, 디버깅 목적으로 왜 Debug.WriteLine을 사용하지 않습니까? "출력"창으로 출력되지만 실수가 없다면 Visual Studio 옵션을 통해 직접 창으로 리디렉션 될 수 있습니다. – erodewald
측정하여 확실하게 알 수 있습니다 :-) –
asp와 비슷한 질문입니다.그물, 같은 답변을 보장하지 않습니다 : http://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net –