Programming/$_머니 (PHP)

[실험 PHP 7.0 2탄] - 메모리 사용률이 현저히 감소

귀찮은 개발자 2024. 2. 9. 19:20
더보기

기술 블로그 이전으로 인해 2022 년도 4월에 작성된 글 입니다. 

PHP 7.0 의 변경 사항

  1. 성능 향상 - PHP 5.6 보다 두배 이상 빠른 속도
  2. 메모리 사용률이 현저히 감소
  3. 추상 구문 트리(Abstract Syntax Tree)
  4. 일관된 64비트 지원(Consistent 64-bit support)
  5. 향상된 예외 상속(Improved Exception hierarchy)
  6. 많은 치명적 에러들이 예외로 전환 됨
  7. 보안 난수 발생기(Secure random number generator)
  8. 오래 됐거나 지원하지 않는 SAPI와 확장 지원 중단
  9. Null 병법 연산자(The null coalescing operator (??))
  10. 리턴 값, 스칼라 타입 정의
  11. 익명 클래스(Anonymous Classes)
  12. Zero cost asserts

성능 향상 - PHP 5.6 보다 메모리 사용률이 현저히 감소

1차 실험(실패)

실험 과정

  1. docker 로 PHP5.6 과 7.0 의 컨테이너를 설치한다.
  2. 예제 코드로 PHP 스크립트를 돌려본다.
php -r 'echo memory_get_usage().PHP_EOL;'

실험 결과

PHP 5.6 : 218032 사용

PHP 7.0 : 346448 사용

2차 실험(실패 ? 성공 ?)

실험 과정

  1. docker 로 PHP5.6 과 7.0 의 컨테이너를 설치한다.
  2. 예제 코드로 PHP 스크립트를 돌려본다.
<?php
ini_set('memory_limit','-1');
$start_memory = memory_get_usage();

$a = str_repeat("1234567890", 9999999);

$end_memory = memory_get_usage();
echo ($end_memory - $start_memory).PHP_EOL;

실험 결과

PHP 5.6 : 100000280 사용

PHP 7.0 : 100003864 사용

메모리 사용률이 증가했다.

결론

1차

  • PHP5.6 : 218032000
  • PHP7.0 : 346448000
  • 비율 9 : 14.301

2차

  • PHP5.6 : 100000280
  • PHP7.0 : 100003864
  • 비율 : 9 : 9

1/2차 테스트를 통해 사용량에 따라 메모리가 효율적으로 사용되고 있는 것을 볼 수 있었다. 

이로 인해 실험은 실패이지만, 규모에 따라 메모리가 효율적으로 사용하기 시작한다는 것을 볼 수 있었으므로 성공이라 보는 것이 맞는 것 같다. 어떠한 프레임워크를 사용하냐에 따라 메모리 사용량이 달라질 것이고 점차 무거워지는 Laravel 프레임워크를 보았을 때 점차 발전하는 PHP 성능을 보고 깝치는 것이 아닌가 조심스럽게 생각해 본다. 

때문에 PHP5.6 에서 PHP7.0 으로 버전을 올리게 되면 메모리 사용률이 현저히 감소 를 채감할 수 있을 것이다.