2022 년도 4월에 작성된 글 입니다.
PHP 7.0 의 변경 사항
- 성능 향상 - PHP 5.6 보다 두배 이상 빠른 속도
- 메모리 사용률이 현저히 감소
- 추상 구문 트리(Abstract Syntax Tree)
- 일관된 64비트 지원(Consistent 64-bit support)
- 향상된 예외 상속(Improved Exception hierarchy)
- 많은 치명적 에러들이 예외로 전환 됨
- 보안 난수 발생기(Secure random number generator)
- 오래 됐거나 지원하지 않는 SAPI와 확장 지원 중단
- Null 병법 연산자(The null coalescing operator (??))
- 리턴 값, 스칼라 타입 정의
- 익명 클래스(Anonymous Classes)
- Zero cost asserts
일관된 64비트 지원 (Consistent 64-bit support)
일관된 64비트 지원이란 무엇일까? 하며 굉장히 많은 자료를 찾아 봤다.
하지만 좋은 결과는 찾지 못했고 5.6 버전에서 7.0으로 올라가며 발생한 차이를 발견했다.
확실한 정보는 아니나, 윈도우에서 PHP는 32비트 운영체제에서 32bit와 64bit를 지원했다.
php-5.6.4-nts-Win32-VC11-x86.zip
php-5.6.4 -Win32-VC11-x86.zip
php-5.6.4-nts-Win32-VC11-x64.zip
php-5.6.4-Win32 -VC11-x64.zip
php-5.5.20-nts-Win32-VC11-x86.zip
php-5.5.20-Win32-VC11 -x86.zip
php-5.5.20-nts-Win32-VC11-x64.zip
php-5.5.20-Win32-VC11-x64.zip
php-5.4.36-nts-Win32-VC9-x86.zip
php-5.4.36-Win32-VC9-x86.zip
php-5.4.36-nts-Win32-VC9-x64.zip
php-5.4.36-Win32-VC9-x64.zip
PHP 7.* 으로 버전이 올라가면서 아래와 같이 지원되는 것을 확인할 수 있었다.
VC15 x64 Non Thread Safe
VC15 x64 Thread Safe
VC15 x86 Non Thread Safe
VC15 x86 Thread Safe
여기서 집고 넘어가야 할 부분이 있다.
Non Thread Safe 버전과 Thread Safe 버전의 차이점이다.
Thread Safe vs Non Thread Safe
Thread Safe 버전은 다중 스레드 전용 빌드이고 Non Thread Safe 버전은 단일 스레드 전용 빌드라는 점이다.
Thread Safe는 Server API 와 PHP 웹 서버를 로드할 경우에 사용하고 Non Thread Safe 버전은 FastCGI 프로토콜을 웹서버를 사용할 경우에 쓰인다. 이렇게 버전이 나뉜 이유는 멀티 프로세스로 개발된 PHP가 멀티 쓰레드로 동작하는 Windows 에서 문제가 발생했기 때문이다.
과거 PHP를 설치할때 무엇을 설치해야할지 고민했던 적이 있지만 오토셋을 통해 고민의 문제를 해결했다.지금은 우분투를 사용해서 apt-get 을 통해 설치하면 되고 윈도우는 WSL2 에 우분투를 띄워 더이상 저런 고민을 하지 않았다. 하지만 Window 에서 PHP 개발환경을 세팅할 경우 상황에 따라 잘 설치 해야한다.
(Autoset은 사실상 지원이 종료되었기 때문에 Autoset으로 PHP 7.4 이상의 버전은 커버하지 못한다.)
그렇기 때문에 상황에 따라 IIS를 사용할 경우 Non Thread Safe Apache를 사용할 경우 Thread Safe 를 사용하면 될것으로 보인다.
결론
일관된 64비트 지원 (Consistent 64-bit support)에 대한 이슈는 윈도우를 기준으로 조사를 했다.
하지만 이러한 문제는 CPU에서부터 시작되기 때문에 우분투, Centos 에서는 어떨지 확인이 필요하고 내가 조사한 부분이 공식문서를 통해 일관된 64비트 지원에 맞는지도 확인이 필요하다.
추억의 오토셋은 서비스가 중단되었지만 아직까지 사이트는 운영되고 있다...
http://autoset.net/xe/download_autoset_10_7_2
오토셋 10.7.2 다운로드
AutoSet 유지보수 종료 안내 1. 오토셋에 대한 유지보수 계획이 없기에 사용자분들께 이 내용을 알려드립니다. 2. 현재 사이트를 통해 제공되는 버전이 최종 버전이며, 더 이상의 업그레이드가 없
autoset.net
'Programming > $_머니 (PHP)' 카테고리의 다른 글
[실험 PHP 7.0 6탄] - 많은 치명적 에러들이 예외로 전환 됨 (0) | 2024.02.09 |
---|---|
[실험 PHP 7.0 5탄] - 향상된 예외 상속(Improved Exception hierarchy) (0) | 2024.02.09 |
[실험 PHP 7.0 3탄] - 추상 구문 트리(Abstract Syntax Tree) (0) | 2024.02.09 |
[실험 PHP 7.0 2탄] - 메모리 사용률이 현저히 감소 (0) | 2024.02.09 |
[실험 PHP 7.0 1탄] - PHP 5.6 보다 두배 이상 빠른 속도 (0) | 2024.02.09 |