메모리 부족 오류를 파악할 수있는 올바른 위치

이브

로컬 봇 경쟁을위한 생산자-소비자 설정에 문제가 있습니다 ( Scalatron을 생각 하지만 더 많은 언어가 허용되고 파이프를 사용하여 stdin 및 stdout에 연결). 항목은 잘 생성되고 소비자가 올바르게 처리하지만이 설정에서 소비자의 작업은 너무 많은 메모리를 차지할 수있는 다른 소프트웨어 조각을 호출하여 메모리 부족 오류가 발생합니다.

나는 Python 스크립트 (즉 소비자)가 subprocess.call. 이들은 모두 평가를 위해 다른 사람들에 의해 제출되었지만, 때때로 제출 된 조각 중 하나가 너무 많은 메모리를 사용하고 엔진이 OutOfMemoryError를 생성하여 전체 스크립트가 중지되도록합니다.

사용 된 설정에는 세 개의 레이어가 있습니다.

  • 소비자 (Python)
  • 게임 엔진 (자바)
  • 플레이어의 봇 (언어가 다름)

소비자는 두 개의 봇을 인수로 사용하여 게임 엔진을 호출합니다
subprocess.call(['setsid', 'sudo', '-nu', 'botrunner', '/opt/bots/sh/run_bots.sh', bot1, bot2]).

게임 엔진 내부에서 루프가 실행되어 봇을 서로 맞대고, 나중에 모든 데이터가 데이터베이스에 저장되어 플레이어가 봇을 검토 할 수 있습니다. 아이디어는 봇이 오류를 유발하면 오류를 기록하고 상대방에게 승리를 거두는 것입니다.

그래도 이것을 잡을 올바른 장소는 무엇입니까? 이것은 "최고"(즉, 소비자) 수준에서 수행되어야합니까, 아니면 게임 엔진 자체에서 수행되어야합니까?

Shishir Kumar

Java에서 Exception또는 ErrorJava 를 잡을 올바른 위치 는이를 처리하고 일부 복구 단계를 수행하는 메커니즘이있는 위치입니다. 의 경우 OutOfMemoryError오류를 정상적으로 닫고 리소스를 깨끗하게 해제하고 가능한 경우 실패 이유를 기록 할 수 있는 경우 에만 오류를 포착해야 합니다.

OutOfMemoryError힙의 나머지 자원으로 만족할 수없는 블록 메모리 할당으로 인해 발생합니다. OutOfMemoryErrorthrow 될 때마다 할당 시도가 실패하기 전에 할당 된 개체의 정확히 동일한 수를 힙에 포함합니다. 이것은 정리에 필요할 수있는 더 많은 메모리를 확보하기 위해 런타임 개체에 대한 참조를 삭제 해야하는 실제 시간이어야 catch합니다 OutOfMemoryError.

JVM이 프로그램을 통해 확인할 수없는 복구 가능한 상태이면 오류를 복구하고 계속할 수도 있습니다. 그러나 이것은 프로그램을 통해서는 결코 결정할 수 없다고 말했기 때문에 일반적으로 좋지 않은 디자인으로 간주됩니다 .

당신이 볼 수있는 경우 문서 의를 java.lang.Error, 그것은 말한다

오류는 합리적인 응용 프로그램이 포착하지 않아야하는 심각한 문제를 나타내는 Throwable의 하위 클래스입니다.

의도적으로 오류를 발견하는 경우 코드의 모든 부분 을 덮지 마십시오catch(Throwable t) {...} .

자세한 내용은 여기를 참조 하세요 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AWS Pandas 설치에서 오류 발생 : 가상 메모리 부족 : 메모리를 할당 할 수 없음

분류에서Dev

Aspire One D255에서 FreeDOS를 통해 BIOS를 업데이트 할 수 없음 : 치명적인 오류 (1307) 메모리 부족

분류에서Dev

Spring, Java : 메모리 부족 오류 방지를위한 스트리밍 파일 다운로드

분류에서Dev

"메모리 부족"오류를 방지하기 위해 PDO를 사용하여 대규모 쿼리를 올바르게 페이지 매김하는 방법은 무엇입니까?

분류에서Dev

Android 장치에서 디버깅하는 동안 메모리 부족 오류

분류에서Dev

메모리 부족 오류를 제공하는 큰 비디오 파일 다운로드

분류에서Dev

Fortify를 사용하는 PermGen 메모리 부족 오류

분류에서Dev

재귀 파이썬 함수에서 "메모리 부족"오류 방지

분류에서Dev

netbeans의 프로세서를 설치하는 동안 Java 메모리 부족 오류

분류에서Dev

Composer에 메모리 부족이 필요합니다. PHP 치명적 오류 : 1610612736 바이트의 허용 메모리 크기가 Voyager를 소모했습니다.

분류에서Dev

EFI / 부팅 및 시스템 파일을 올바른 위치에 배치하여 운영 체제를 '설치'할 수 있습니까?

분류에서Dev

CPU와 GPU 모두에서 메모리가 부족한 Pytorch 모델은 내가 뭘 잘못하고 있는지 파악할 수 없습니다.

분류에서Dev

Java에서 for 루프를 작성하려고하지만 올바른 논리를 파악할 수 없습니다.

분류에서Dev

치명적인 오류 : 55 행의 D : \ xampp \ phpMyAdmin \ libraries \ zip_extension.lib.php의 메모리 부족 (761004032 할당 됨) (755370216 바이트 할당 시도)

분류에서Dev

div 클래스를 찾을 수없는 경우 "메모리 부족"오류

분류에서Dev

VB6 '메모리 부족'한 시스템에서는 컴파일 할 수 있지만 다른 시스템에서는 컴파일 할 수 없습니다.

분류에서Dev

mod_rewrite는 WWW를 추가할지 여부를 결정하기 위해 ElseIf 논리에서 올바른 RewriteCond를 어떻게 선택할 수 있습니까?

분류에서Dev

Cassandra NodeTool 수리-메모리 부족 오류

분류에서Dev

다중 처리를 사용하여 공유 메모리를 할당 할 때 가짜 메모리 부족 오류

분류에서Dev

내 getter 메서드가 잘못된 위치를 파악할 수 없음 (Java)

분류에서Dev

자바 컬렉션 메모리 부족 오류

분류에서Dev

Laravel 5에서 내 PHP 오류 처리기를 설정하는 올바른 위치

분류에서Dev

Picasso Libarary를 사용할 때 5898256 바이트 할당에서 메모리 부족

분류에서Dev

Mongodb 빌드 / 컴파일 오류 : Ubuntu에서 메모리 부족

분류에서Dev

AnimationDrawable을 사용할 때 메모리 부족 오류

분류에서Dev

오류 [Lp001] 메모리가 부족할 때

분류에서Dev

오류 [Lp001] 메모리가 부족할 때

분류에서Dev

Spark : HDFS에 저장할 때 메모리 부족 오류

분류에서Dev

치명적 오류 : CALL_AND_RETRY_2 할당 실패-내 js 파일을 사전 처리 할 때 메모리 부족 처리

Related 관련 기사

  1. 1

    AWS Pandas 설치에서 오류 발생 : 가상 메모리 부족 : 메모리를 할당 할 수 없음

  2. 2

    Aspire One D255에서 FreeDOS를 통해 BIOS를 업데이트 할 수 없음 : 치명적인 오류 (1307) 메모리 부족

  3. 3

    Spring, Java : 메모리 부족 오류 방지를위한 스트리밍 파일 다운로드

  4. 4

    "메모리 부족"오류를 방지하기 위해 PDO를 사용하여 대규모 쿼리를 올바르게 페이지 매김하는 방법은 무엇입니까?

  5. 5

    Android 장치에서 디버깅하는 동안 메모리 부족 오류

  6. 6

    메모리 부족 오류를 제공하는 큰 비디오 파일 다운로드

  7. 7

    Fortify를 사용하는 PermGen 메모리 부족 오류

  8. 8

    재귀 파이썬 함수에서 "메모리 부족"오류 방지

  9. 9

    netbeans의 프로세서를 설치하는 동안 Java 메모리 부족 오류

  10. 10

    Composer에 메모리 부족이 필요합니다. PHP 치명적 오류 : 1610612736 바이트의 허용 메모리 크기가 Voyager를 소모했습니다.

  11. 11

    EFI / 부팅 및 시스템 파일을 올바른 위치에 배치하여 운영 체제를 '설치'할 수 있습니까?

  12. 12

    CPU와 GPU 모두에서 메모리가 부족한 Pytorch 모델은 내가 뭘 잘못하고 있는지 파악할 수 없습니다.

  13. 13

    Java에서 for 루프를 작성하려고하지만 올바른 논리를 파악할 수 없습니다.

  14. 14

    치명적인 오류 : 55 행의 D : \ xampp \ phpMyAdmin \ libraries \ zip_extension.lib.php의 메모리 부족 (761004032 할당 됨) (755370216 바이트 할당 시도)

  15. 15

    div 클래스를 찾을 수없는 경우 "메모리 부족"오류

  16. 16

    VB6 '메모리 부족'한 시스템에서는 컴파일 할 수 있지만 다른 시스템에서는 컴파일 할 수 없습니다.

  17. 17

    mod_rewrite는 WWW를 추가할지 여부를 결정하기 위해 ElseIf 논리에서 올바른 RewriteCond를 어떻게 선택할 수 있습니까?

  18. 18

    Cassandra NodeTool 수리-메모리 부족 오류

  19. 19

    다중 처리를 사용하여 공유 메모리를 할당 할 때 가짜 메모리 부족 오류

  20. 20

    내 getter 메서드가 잘못된 위치를 파악할 수 없음 (Java)

  21. 21

    자바 컬렉션 메모리 부족 오류

  22. 22

    Laravel 5에서 내 PHP 오류 처리기를 설정하는 올바른 위치

  23. 23

    Picasso Libarary를 사용할 때 5898256 바이트 할당에서 메모리 부족

  24. 24

    Mongodb 빌드 / 컴파일 오류 : Ubuntu에서 메모리 부족

  25. 25

    AnimationDrawable을 사용할 때 메모리 부족 오류

  26. 26

    오류 [Lp001] 메모리가 부족할 때

  27. 27

    오류 [Lp001] 메모리가 부족할 때

  28. 28

    Spark : HDFS에 저장할 때 메모리 부족 오류

  29. 29

    치명적 오류 : CALL_AND_RETRY_2 할당 실패-내 js 파일을 사전 처리 할 때 메모리 부족 처리

뜨겁다태그

보관