스레드 생성시 메모리 누수, GC가 유효하지 않음

야노스

내 애플리케이션 (C #으로 작성)은 지난 몇 달 동안 괜찮 았지만 지난주 갑자기 메모리 누수가 발생하기 시작했습니다. 나는 그것을 다시 빌드하지 않았고 바이너리는 동일합니다!

근본 원인을 찾으려고 노력했지만 나중에 Thread memory leak 에서 찾은 것과 동일한 테스트 응용 프로그램을 사용하게되었습니다 . 그래서 저는 Hans가 제안한 솔루션을 복사하여 실행했습니다. 메모리 누수가 지속되었습니다. GC.Collect ()를 추가하면 GC가 각 호출에서 할당 된 메모리의 일부를 복구했기 때문에 메모리 증가가 재기 만하게되었습니다.

프로파일 러로 확인한 결과 스레드와 관련된 항목을 제외하고 다른 모든 관리 또는 관리되지 않는 개체가 올바르게 완료되었습니다.

class Program
{
    static void test()
    {
    }

    static void Main(string[] args)
    {
        int cnt = 0;
        while (true)
        {              
            Thread test_thread = new Thread(() => test());
            test_thread.Start();
            if (++cnt % 256 == 0) GC.Collect();
            Thread.Sleep(20);
        }
    }
}

그런 다음 위의 동일한 테스트 코드를 다른 PC에서 시도했는데 (놀랍습니다!) 완벽하게 작동하고 메모리 누수가 전혀 없었습니다.

업데이트 :이 주제에서 영감을 얻었습니다 . 다른 대상을 위해 많은 스레드를 만들 때 Net Memory Leak . x64 대상을 사용하면 테스트 응용 프로그램의 문제가 해결되는 것 같습니다. 불행히도 내 실제 프로젝트에는 다시 빌드 할 수없는 타사 하위 프로젝트가 포함되어 있습니다.

따라서 내 PC에서 문제가 발생하여 GC가 제대로 작동하지 않는 것 같습니다. 무엇을 확인하고 어디를 볼지 제안 해 주시겠습니까? 미리 감사드립니다.

야노스

해결책은 많은 쓰레드를 생성 할 때 .Net Memory Leak에 대한 주석에있었습니다 . Windows 안전 모드에서 누수가 없는지 확인했습니다. 그런 다음 일반 모드에서 중요하지 않은 프로세스를 종료하기 시작했습니다. 바이러스 백신 프로세스는 Hans Passant가 제안한대로 트릭을 수행했습니다. 감사!

내 응용 프로그램이 다시 작동하지만 PC는 보호되지 않습니다. 또한 설명도없고 배울 교훈도 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AWS-정책 생성 시도-리소스 필드가 유효하지 않음

분류에서Dev

서버 모드의 GC가 메모리를 수집하지 않음

분류에서Dev

메모리 누수가 발생하지 않는 이유는 무엇입니까?

분류에서Dev

Rails 4 : 생성시 모델 유효성 검사가 작동하지 않음

분류에서Dev

메모리 카운터 스레드가 작동하지 않음

분류에서Dev

Kendo Combobox가 필수 유효성 검사 메시지를 트리거하지 않음

분류에서Dev

다음 C ++ 코드에서 메모리 누수가 발생하는 이유는 무엇입니까?

분류에서Dev

힙에서 메모리 누수가 발생하는 동안 Java 스레드는 어떻게됩니까?

분류에서Dev

PHP 코드가 정확하게 작동하지만 유효성 검사 메시지가 표시되지 않음

분류에서Dev

크로스 스레드 작업이 유효하지 않음 : 생성 된 스레드가 아닌 스레드에서 액세스 한 'ListView1'제어

분류에서Dev

"크로스 스레드 작업이 유효하지 않음 : 생성 된 스레드가 아닌 스레드에서 액세스 된 제어."

분류에서Dev

치명적 : 공유 메모리 세그먼트를 작성할 수 없음 : 유효하지 않은 인수

분류에서Dev

모든 필드에 대해 jquery 유효성 검사가 작동하지 않음

분류에서Dev

webapp의 Log4j2 : MongoCleaner 스레드가 메모리 누수를 생성 함

분류에서Dev

NetworkManager가 메모리 내 연결을 생성하지 않음

분류에서Dev

Kendo UI 유효성 검사기가 그리드에서 실패 (메시지가 사라지지 않음)

분류에서Dev

부트 레스트 컨트롤러 매개 변수에서 Javax 유효성 검사가 작동하지 않음

분류에서Dev

레일스 모델 생성-유효하지 않은 경우 생성을 건너 뛰시겠습니까?

분류에서Dev

목록을 자체에 추가 한 다음 삭제하면 메모리 누수가 발생하는 이유

분류에서Dev

C 스타일 문자열을 다시 할당하면 메모리 누수가 발생할 수 있습니까?

분류에서Dev

gtk_file_chooser_get_filename, 결과가 해제되지 않음, 메모리 누수?

분류에서Dev

이 코드에서 메모리 누수가 발생하는 방법

분류에서Dev

교차 스레드가 유효하지 않음

분류에서Dev

텍스트 양식 필드 유효성 검사기 오류 메시지가 표시되지 않음

분류에서Dev

Valgrind가 메모리 누수를 확인할 때 메시지를 잃을 수 있음-C

분류에서Dev

유효성 검사가 작동하지 않음 (레일 3)

분류에서Dev

가상 메모리 : 해제되지 않은 malloc의 메모리 누수?

분류에서Dev

Blackberry가 유효한 sqlite 데이터베이스를 생성하지 않음

분류에서Dev

C ++ openssl 1.1.1 스레드에서 RSA 알고리즘을 실행하여 메모리 누수 발생

Related 관련 기사

  1. 1

    AWS-정책 생성 시도-리소스 필드가 유효하지 않음

  2. 2

    서버 모드의 GC가 메모리를 수집하지 않음

  3. 3

    메모리 누수가 발생하지 않는 이유는 무엇입니까?

  4. 4

    Rails 4 : 생성시 모델 유효성 검사가 작동하지 않음

  5. 5

    메모리 카운터 스레드가 작동하지 않음

  6. 6

    Kendo Combobox가 필수 유효성 검사 메시지를 트리거하지 않음

  7. 7

    다음 C ++ 코드에서 메모리 누수가 발생하는 이유는 무엇입니까?

  8. 8

    힙에서 메모리 누수가 발생하는 동안 Java 스레드는 어떻게됩니까?

  9. 9

    PHP 코드가 정확하게 작동하지만 유효성 검사 메시지가 표시되지 않음

  10. 10

    크로스 스레드 작업이 유효하지 않음 : 생성 된 스레드가 아닌 스레드에서 액세스 한 'ListView1'제어

  11. 11

    "크로스 스레드 작업이 유효하지 않음 : 생성 된 스레드가 아닌 스레드에서 액세스 된 제어."

  12. 12

    치명적 : 공유 메모리 세그먼트를 작성할 수 없음 : 유효하지 않은 인수

  13. 13

    모든 필드에 대해 jquery 유효성 검사가 작동하지 않음

  14. 14

    webapp의 Log4j2 : MongoCleaner 스레드가 메모리 누수를 생성 함

  15. 15

    NetworkManager가 메모리 내 연결을 생성하지 않음

  16. 16

    Kendo UI 유효성 검사기가 그리드에서 실패 (메시지가 사라지지 않음)

  17. 17

    부트 레스트 컨트롤러 매개 변수에서 Javax 유효성 검사가 작동하지 않음

  18. 18

    레일스 모델 생성-유효하지 않은 경우 생성을 건너 뛰시겠습니까?

  19. 19

    목록을 자체에 추가 한 다음 삭제하면 메모리 누수가 발생하는 이유

  20. 20

    C 스타일 문자열을 다시 할당하면 메모리 누수가 발생할 수 있습니까?

  21. 21

    gtk_file_chooser_get_filename, 결과가 해제되지 않음, 메모리 누수?

  22. 22

    이 코드에서 메모리 누수가 발생하는 방법

  23. 23

    교차 스레드가 유효하지 않음

  24. 24

    텍스트 양식 필드 유효성 검사기 오류 메시지가 표시되지 않음

  25. 25

    Valgrind가 메모리 누수를 확인할 때 메시지를 잃을 수 있음-C

  26. 26

    유효성 검사가 작동하지 않음 (레일 3)

  27. 27

    가상 메모리 : 해제되지 않은 malloc의 메모리 누수?

  28. 28

    Blackberry가 유효한 sqlite 데이터베이스를 생성하지 않음

  29. 29

    C ++ openssl 1.1.1 스레드에서 RSA 알고리즘을 실행하여 메모리 누수 발생

뜨겁다태그

보관