>  기사  >  백엔드 개발  >  이 중첩 논리를 개선하여 제대로 작동하고 성능을 향상하려면 어떻게 해야 합니까?

이 중첩 논리를 개선하여 제대로 작동하고 성능을 향상하려면 어떻게 해야 합니까?

王林
王林앞으로
2024-02-08 23:24:09584검색

이 중첩 논리를 개선하여 제대로 작동하고 성능을 향상하려면 어떻게 해야 합니까?

PHP 편집기 Yuzai님, 코드를 작성할 때 중첩된 논리 문제로 인해 코드가 제대로 작동하지 않거나 성능이 저하되는 문제가 발생했을 수 있습니다. 이 문제를 개선하려면 고려해야 할 몇 가지 핵심 사항이 있습니다. 먼저, 논리 구조를 다시 검토하여 코드를 단순화하거나 재구성하여 중첩 수준을 줄일 수 있는지 확인할 수 있습니다. 둘째, 적절한 데이터 구조와 알고리즘을 사용하여 코드를 최적화하는 것을 고려할 수 있습니다. 또한 성능 향상을 위해 코드에서 계산이나 중복 작업이 중복되지 않는지 확인하세요. 마지막으로 적절한 테스트와 디버깅을 수행하여 다양한 상황에서 코드가 제대로 작동하는지 확인하세요. 이러한 방법을 통해 중첩 논리를 개선하고 코드 성능을 향상시킬 수 있습니다.

질문 내용

댓글이 포함된 데이터베이스가 있는데, 각 댓글에는 ID와 상위 ID가 있습니다. 목표는 단순히 효율적인 방식으로 상위 댓글 아래에 상위 ID가 있는 각 댓글을 배치하는 것입니다.

처음에는 arranged배열에서 상위 주석을 검색하기 위해 재귀 함수를 사용했지만 성능이 형편없었습니다. 부모를 추적하기 위해 포인터를 사용하도록 리팩터링했는데 거의 완벽하게 작동했지만 처리할 마지막 주석이 항상 출력에서 ​​제외되는 것 같습니다.

아래 예에서 "코멘트 1"은 "코멘트 11"의 하위 항목이어야 하지만 출력에는 전혀 포함되지 않습니다.

으아악

업데이트; 이로 인해 더 가까워졌지만 더 깊게 중첩된 댓글을 중첩할 수는 없습니다. 이상하게도 실행될 때마다 다른 출력이 생성됩니다.

으아악

업데이트; 동일한 샘플 데이터를 사용하여 올바른 결과를 생성하는 JavaScript 구현을 신속하게 작성했지만 이 JS 코드는 작동하고 Go 코드는 작동하지 않는 이유를 알 수 없습니다.

으아악

Runnable Go 예: https://gist.github.com/dlford/9e66069cfc7fb9afc649c5e3dc650083

실행 가능한 JS 예: https://gist.github.com/dlford/f6f4a383a99f65659895ed51d1a4b651

Go 코드 출력(하단의 개수 참조): https://gist.github.com/dlford/302c4db939c21d15132848368caa01ec

JS 코드 출력(하단의 개수 참조): https://gist.github.com/dlford/60ab49d0466c957c7745059022e27e09

해결 방법

문제는 NestedComment 中的 Children도 포인터로 저장해야 한다는 것입니다.

작업 예시:

으아악

위 내용은 이 중첩 논리를 개선하여 제대로 작동하고 성능을 향상하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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