programing

디버그 모드에서 프로그램 실행 속도가 매우 느립니다.

magicmemo 2023. 5. 11. 21:21
반응형

디버그 모드에서 프로그램 실행 속도가 매우 느립니다.

최근부터 이클립스 갈릴레오에서 디버그 모드로 프로그램을 실행하는 것이 훨씬 느립니다.

저는 어떤 변화도 모릅니다.

무엇이 원인이 될 수 있는지 아십니까?정상적으로 실행하는 것은 문제가 되지 않습니다.

또 다른 "디버깅 중단"은 메서드 진입/종료 중단점을 사용하는 것입니다.

모든 중단점 정의를 한 번 제거하려고 했습니까?

때때로 저는 Eclipse가 내부/표시된 상태와 동기화되지 않는다고 생각합니다.작업영역의 새(복사가 아닌) 설정을 시도해야 합니다.이 기능은 때때로 가상 기능을 복구하는 데 도움이 됩니다.

이렇게 하면 모든 중단점을 제거할 수 있습니다.

이클립스 -> 실행 -> 모든 중단점 제거 - 모든 시간 동안 모든 중단점 제거

이클립스 -> 실행 -> 모든 중단점 건너뛰기 - 일시적으로 중단점 제거

저는 이 문제에 많은 시간을 직면했습니다.솔루션은 간단합니다. 모든 중단점 제거. (실행 >> 모든 중단점 제거)

저는 이클립스 디버그 모드에서 디버깅 없이 거의 즉시 실행할 수 있는 프로그램을 실행하고 있었는데 디버그 모드에서 실행했을 때 정말 느렸습니다.저는 제가 사용하지 않는 수많은 쓸모없는 중단점들을 검토하고 삭제했고, 그 후 프로그램 속도가 매우 빨라졌습니다(200배 정도).

'단계 작업 후 메서드 결과 표시'를 비활성화합니다.

단계 작업 후 메서드 결과 표시

저는 종종 더 이상 필요하지 않은 표현식 패널에 평가(또는 평가 실패)되는 표현식이 많이 추가되어 있다는 것을 잊어버리고 있으며, 이로 인해 내용이 상당히 느려집니다.필요하지 않을 때는 해당 표현식을 삭제해야 합니다.

일식 닫기...%temp% 폴더, 임시 폴더 지우기...중단점 사용 안 함...대부분의 경우 이것은 확실히 문제를 해결할 것입니다.

어떤 종류의 JVM에 연결하고 있습니까?제 경험상 디버그 모드에서 IBM JDK는 매우 느립니다.모든 JVM에 대해 비싼 조건부 중단점이 있는지 확인합니다.중단점을 비활성화합니다.예외 중단점 또는 식이 있을 수 있습니다.사용하지 않도록 설정하거나 제거합니다.

제 경우, Eclipse는 파일을 빌드하려고 했습니다. 제가 수동으로 작업했습니다.창 -> 기본 설정 -> 실행/디버그 -> 실행으로 이동한 다음 일반 옵션 아래의 "실행 전 빌드(필요한 경우)"를 비활성화하면 속도가 해결되었습니다.

Windows에서 임시 파일을 지우는 것이 해결되었습니다.

"C:\\Documents and Settings\\{user}\\Local Settings\\Temp"

일반적으로 Java Virtual Machine은 디버그 모드에서 실행될 때 JIT(Just in time compiler)를 해제합니다.IBM WebSphere에서 IBM JDK는 최적화되지 않은 상태로 매우 느립니다.그런데 디버깅은 또한 코드를 다시 컴파일하고 최적화하는 것을 불가능하게 만듭니다.

복잡한 디버깅을 위한 로깅 릴레이: 확실하게 디버깅할 수 없는 프로덕션 기간을 절약합니다.

지난 몇 년간 일식을 다루는 모든 학습과 함께, 여기 몇 가지 제안이 있습니다.

  1. 실제 필요한 작업을 최소화하는 열린 프로젝트 유지
  2. 사용하지 않는 플러그인/플러그인(mylnn, 유효성 검사 등)을 제거합니다.
  3. 여러분이 무엇을 하든, 일식은 시간이 지남에 따라 느려지는 경향이 있습니다.응답성이 뛰어난 IDE를 얻기 위한 궁극적인 솔루션은 기존 작업 공간을 재활용하는 것입니다(새 작업 공간을 만들고 필요한 프로젝트를 가져오는 것).

에 를 .단추(모든 중단점 사용 안 함) 그러면 로드 속도가 느리거나 문제가 발생하지 않습니다.응용 프로그램이 시작된 후 중단점을 활성화하면 코드를 디버그할 수 있습니다.

저는 최근에 macOS 버전을 업그레이드한 후 이 문제에 직면했습니다.위의 모든 솔루션으로 느린 디버거를 고칠 수 없었고, 결국 새로운 버전의 이클립스를 설치하게 되었고, 그 이후 모든 것이 정상적으로 작동합니다.

한 번은 그런 일이 있었는데 문제는 소스 검색에서 모든 프로젝트 소스 코드가 포함된 폴더를 가지고 있었다는 것입니다.이렇게 하면 디버거가 정말 느려질 뿐만 아니라(아마도 내 모든 파일을 크롤링했기 때문일 것이다) 인라인 실행과 같은 많은 것을 할 수 없었습니다.

유용한 정보: 소스 조회를 확인합니다.[디버깅] 보기에서 스레드를 마우스 오른쪽 단추로 클릭하여 디버깅할 때 [소스 검색 편집]을 선택하고 제거할 수 있는 항목을 확인합니다.저의 경우에는 가상 폴더였고, 다른 경우에는 프로젝트, 폴더, JAR 등이 너무 많아서 일부를 제거할 수도 있습니다.

최근에 나는 이클립스와 비주얼 스튜디오 코드(vs 코드) 모두에서 극도로 느린 성능 디버그를 겪고 있었습니다.

저의 경우, 문제는 JPA 엔티티의 lombok 구성에 있었습니다.

저는 @Data 주석을 @Getters@Setters로 변경했습니다.

lombokhashCode() equals() 구현이 JPA와 충돌한 것 같습니다.

저도 같은 문제를 겪었습니다.제가 사용하는 작업은 단일 중단점을 설정하고 실행하는 것입니다.그 후에는 넘어지거나 계속하려고 하지 않고 테스트를 다시 시작하고 중단점을 다음 줄로 이동합니다.나는 Intellij에서 Mockito와 Junit를 사용하고 있습니다.바이트 코드 조작이 intelij의 실제 코드와 일치하지 않는 것과 관련이 있다고 생각합니다.intellij에는 Junit 테스트를 실행하기 위한 intellij 내부 구현이 있습니다.모키토는 그것을 가지고 의지를 가지고 놀지 않을 수 있습니다.

언급URL : https://stackoverflow.com/questions/4591187/running-a-program-in-debug-mode-is-incredible-slow

반응형