>  기사  >  백엔드 개발  >  프로토젠 고루틴 스택이 초과되었습니다.

프로토젠 고루틴 스택이 초과되었습니다.

王林
王林앞으로
2024-02-09 09:48:09822검색

Protogen Goroutine 堆栈超过

php 편집자 Yuzai는 오늘 Protogen과 관련된 문제, 즉 고루틴 스택이 초과되는 상황을 소개할 것입니다. Protogen으로 개발할 때 때때로 Goroutine 스택이 초과되었음을 나타내는 오류 메시지가 나타날 수 있습니다. 이 문제가 발생하면 프로그램 충돌이나 성능 저하가 발생할 수 있습니다. 그렇다면 이런 문제는 왜 발생하며 어떻게 해결해야 할까요? 다음으로 하나씩 답변해드리겠습니다.

질문 내용

최근 golang에서 코드 생성 문제가 발생했습니다. 저는 거대한 원시 파일을 가지고 있으며 이제 외부 패키지를 사용하여 대부분의 메시지에 로깅을 추가해야 합니다. 그러나 너무 많은 필드에 대한 로깅을 추가하면 패닉이 발생하고 고루틴 스택이 초과되었다는 메시지가 표시됩니다. 코드를 청크로 생성하는 방법이 있나요? 아니면 생성된 고루틴의 최대 캐시 크기를 늘리는 방법이 있나요?

debug.SetMaxStack을 시도하고 go 코드로 빌드 명령을 실행했지만 아무것도 변경되지 않았습니다. 나에게는 좋은 해결책이 아닌 것 같았습니다.

해결 방법

@BurakSerdar가 재귀 인쇄에 대해 언급한 것처럼 문제가 있는 것으로 나타났습니다. 주기에. 따라서 다음과 같은 경우:

으아악

이러면 안 됩니다:

으아악

필드에 추가하려는 다른 사용자 정의도 마찬가지라고 생각합니다. 메시지가 있는 경우 동일한 메시지 유형의 필드를 포함하세요

위 내용은 프로토젠 고루틴 스택이 초과되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제