현재 위치: > 최신 기사 목록> Memory_get_usage 및 ini_set과 함께보다 합리적인 PHP 메모리 제한을 설정하는 방법은 무엇입니까?

Memory_get_usage 및 ini_set과 함께보다 합리적인 PHP 메모리 제한을 설정하는 방법은 무엇입니까?

gitbox 2025-06-30

PHP 애플리케이션을 개발할 때 메모리 사용 최적화는 항상 중요한 주제였습니다. 합리적인 메모리 관리는 메모리 오류를 피할뿐만 아니라 응용 프로그램 성능을 향상시킬 수 있습니다. PHP는 메모리 사용량을 모니터링하고 조정하는 많은 기능을 제공하며 그중에 Memory_get_usage ()ini_set () 가 일반적으로 사용되는 도구입니다. 이 기사는이 두 기능을 결합하여보다 합리적인 PHP 메모리 제한을 설정하여 PHP 스크립트가 다량의 데이터 또는 복잡한 작업을 처리 할 때 사전 설정 메모리 제한을 초과하지 않도록하는 방법을 살펴 봅니다.

1. memory_get_usage () 함수 소개

Memory_get_usage () 는 현재 PHP 스크립트의 메모리 사용량을 얻기 위해 PHP가 제공하는 메모리 관리 기능입니다. 현재 스크립트가 바이트로 사용한 메모리 크기를 반환합니다. 보다 정확한 메모리 모니터링이 필요한 경우이 기능을 사용하여 메모리 사용을 동적으로 볼 수 있습니다.

 <span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">memory_get_usage</span></span><span>();  </span><span><span class="hljs-comment">// 현재 메모리 사용을 출력합니다(바이트)</span></span><span>
</span></span>

또한 Memory_get_usage ()는 PHP 내부 버퍼의 메모리 사용이 포함되어 있는지 여부를 지정하기 위해 선택적 매개 변수를 수락 할 수 있습니다.

 <span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">memory_get_usage</span></span><span>(</span><span><span class="hljs-literal">true</span></span><span>);  </span><span><span class="hljs-comment">// 내부 버퍼의 메모리 사용을 포함합니다</span></span><span>
</span></span>

이 기능은 복잡한 작업을 수행 할 때 개발자가 실시간으로 메모리 소비를 실시간으로 이해하여 메모리 설정을 조정하고 과도한 메모리 소비로 인해 스크립트 충돌을 피할 수 있습니다.

2. ini_set () 함수 소개

ini_set ()은 구성 옵션을 동적으로 수정하는 데 PHP에서 사용하는 함수입니다. 이 기능을 사용하면 런타임에 메모리 제한을 포함한 PHP 구성 항목을 수정할 수 있습니다. PHP 메모리 제한의 경우 Memory_Limit 구성 항목이 일반적으로 사용되며 PHP 스크립트가 소비 할 수있는 최대 메모리 크기를 제어합니다.

 <span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'memory_limit'</span></span><span>, </span><span><span class="hljs-string">'256M'</span></span><span>);  </span><span><span class="hljs-comment">// 메모리 제한을 설정합니다 256MB</span></span><span>
</span></span>

경우에 따라 기본 메모리 제한이 많은 양의 데이터를 처리하기에 충분하지 않을 수 있거나 복잡한 컴퓨팅 작업을 실행할 때 메모리 오버플로 오류가 발생할 수 있습니다. 현재 ini_set ()을 사용하여 다른 요구를 충족시키기 위해 메모리 제한을 동적으로 조정할 수 있습니다.

3. memory_get_usage ()ini_set () 와 함께 메모리 제한을 설정합니다.

Memory_get_usage ()ini_set ()을 결합하여 개발자는 PHP 스크립트 작동 중에 메모리 사용량을 동적으로 모니터링하고 필요에 따라 실시간으로 메모리 제한을 조정할 수 있습니다. 다음은 스크립트가 실행되는 동안 메모리를 모니터링하고 메모리 제한을 합리적으로 조정하는 방법을 보여주는 간단한 예입니다.

 <span><span><span class="hljs-comment">// 현재 메모리 사용량을 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$currentMemoryUsage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">memory_get_usage</span></span><span>(</span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 메모리 사용: "</span></span><span> . </span><span><span class="hljs-variable">$currentMemoryUsage</span></span><span> . </span><span><span class="hljs-string">" 바이트\n"</span></span><span>;

</span><span><span class="hljs-comment">// 초기 메모리 제한을 설정하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'memory_limit'</span></span><span>, </span><span><span class="hljs-string">'128M'</span></span><span>);

</span><span><span class="hljs-comment">// 메모리 제한에 가까운 지 확인하십시오,가까운 경우 메모리 제한을 늘리십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$currentMemoryUsage</span></span><span> &gt; </span><span><span class="hljs-number">100</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span>) {  </span><span><span class="hljs-comment">// 현재 메모리 사용이 초과 된 경우 100MB</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'memory_limit'</span></span><span>, </span><span><span class="hljs-string">'256M'</span></span><span>);  </span><span><span class="hljs-comment">// 메모리 제한을 증가시킵니다 256MB</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"메모리 제한이 조정되었습니다 256MB\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 메모리 사용合理,메모리 제한을 조정할 필요가 없습니다。\n"</span></span><span>;
}

</span><span><span class="hljs-comment">// 많은 메모리가 필요한 작업을 수행합니다</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-title function_ invoke__">range</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1000000</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"작업이 완료되었습니다。\n"</span></span><span>;
</span></span>

위의 예에서 스크립트는 먼저 현재 메모리 사용을 확인합니다. 메모리 사용이 사전 설정 제한 (예 : 100MB)에 가까운 경우 ini_set ()을 사용하여 메모리 제한을 늘리십시오. 이 방법을 사용하면 메모리 오버 플로우로 인해 프로그램이 중단되는 것을 피하고 메모리가 소진 될 때 스크립트가 원활하게 전환 될 수 있습니다.

4. Memory_get_usage ()ini_set ()을 사용할 때?

  1. 다량의 데이터를 처리 할 때 : 애플리케이션이 다량의 데이터를 처리 해야하는 경우 메모리 요구 사항이 크게 증가 할 수 있습니다. 현재 Memory_get_usage () 를 통해 메모리 사용량을 모니터링하고 상황에 따라 메모리 제한을 조정하여 메모리 오류가 충분하지 않도록 할 수 있습니다.

  2. 복잡한 컴퓨팅 작업 : 스크립트가 대규모 컴퓨팅 (대규모 이미지 처리, 빅 데이터 분석 등)을 수행 해야하는 경우 메모리 소비도 더 높아집니다. 메모리 제한을 조정하기 위해 ini_set () 을 적절히 사용하면 이러한 계산 작업이 원활하게 완료 될 수 있습니다.

  3. 최적화 된 성능 : 스크립트가 특정 특정 상황에서 많은 메모리를 소비한다는 것을 이미 알고 있다면 스크립트 시작 부분에서 큰 메모리 제한을 설정하면 여러 조정을 피하고 오버 헤드를 줄일 수 있습니다.

5. 주목할만한 것들

  • 메모리 한계의 빈번한 수정을 피하십시오. INI_SET ()는 메모리 제한을 동적으로 조정할 수 있지만 메모리 제한을 자주 수정하면 성능에 영향을 줄 수 있습니다. 따라서이 방법은 메모리 조정을 실행할 때마다 합리적으로 사용해야합니다.

  • 합리적으로 추정 메모리 요구 사항 : 개발 단계에서 응용 프로그램의 메모리 요구 사항에 대한 합리적인 추정치가 이루어져야합니다. Memory_get_usage () 를 통해 스크립트를 디버깅하여 다른 기능 모듈의 메모리 소비를보고 스크립트 시작시 적절한 메모리 제한을 설정할 수 있습니다.

  • 모니터 메모리 사용 : 프로덕션 환경에서 PHP 스크립트를 실행하는 경우 PHP 오류 로그를 활성화하고 메모리 사용을 모니터링하는 것이 좋습니다. 메모리 사용이 제한에 가까워지면 메모리를 사전에 최적화하거나 확장 할 수 있습니다.

결론적으로

Memory_get_usage ()ini_set () 을 결합하여 개발자는 PHP 스크립트가 실행중인 동안 메모리 소비를 실시간으로 모니터링하고 필요에 따라 메모리 제한을 조정할 수 있습니다. 이 동적 조정 방법은 메모리 오버플로 오류를 효과적으로 피하고 프로그램 안정성과 효율성을 향상시킬 수 있습니다. 개발에서 합리적으로 메모리 사용 제한을 구성하는 것은 PHP 스크립트의 효율적인 작동을 보장하는 키 중 하나입니다.