| 개발자 | 페이스북 |
|---|---|
| 발표일 | 2010년 2월 2일 |
| 최종 버전 | HHVM으로 대체됨
/ 2013년 |
| 저장소 | |
| 프로그래밍 언어 | C++, Hack, OCaml, Rust |
| 이후 소프트웨어 | HHVM |
| 라이선스 | PHP License |
| 웹사이트 | github |
HipHop for PHP(HPHPc)는 페이스북이 개발한 단종된 PHP 소스 대 소스 컴파일러이다. HPHPc를 사용하면 PHP 코드를 C++로 변환한 뒤, 이를 이진 코드로 컴파일하여 실행 파일 형태로 실행한다. 이는 PHP 코드를 오피코드로 변환하여 인터프리터로 실행하는 기존의 PHP 실행 방식과는 다르다. HPHPc는 주로 C++, C, PHP 소스 코드로 구성되어 있으며, PHP License에 따라 배포되는 자유-오픈 소스 소프트웨어이다.
HipHop을 개발하게 된 원래 동기는 페이스북의 거대한 PHP 코드베이스를 고려할 때 페이스북 서버의 자원을 절약하기 위함이었다. HipHop의 개발이 진행되면서, HipHop이 전반적인 PHP 애플리케이션의 속도를 크게 향상시킬 수 있다는 점이 확인되었다. 젠드 PHP와 비교했을 때 웹 페이지 생성 처리량이 최대 6배까지 증가하는 것이 관찰되었다. HPHPc의 명시된 목표 중 하나는 젠드 PHP에 대한 높은 호환성을 제공하는 것이었으며, 대부분의 젠드 기반 PHP 프로그램은 수정 없이 HPHPc에서 실행되었다. HPHPc는 2010년 초에 처음으로 오픈 소스화되었다.
HPHPc의 추가 요소로서 페이스북 엔지니어들은 HipHop의 "개발자 모드"(PHP 실행 엔진의 인터프리터 버전, HPHPi라 함)와 HipHop 디버거(HPHPd라 함)를 만들었다. 이러한 추가 도구들을 통해 개발자들은 HPHPc와 동일한 로직을 거쳐 PHP 코드를 실행할 수 있으며, 워치, 브레이크포인트 등을 설정하여 대화형으로 PHP 코드를 디버깅할 수 있게 되었다. HPHPi를 통한 코드 실행은 HPHPc에 비해 성능이 낮지만, 당시에는 생산과 개발 환경을 위해 이 두 가지 실행 엔진을 유지 관리하는 것이 개발자들에게 충분한 이점을 제공했다. HPHPi와 HPHPd 또한 2010년에 오픈 소스로 공개되었다.
여러 면에서 HPHPc는 그 목표를 달성했으며, 특히 페이스북 내부에서 페이스북 웹사이트가 더 적은 자원을 사용하면서도 훨씬 빠르게 실행되도록 했다. 그러나 2013년 초 페이스북은 HPHPc를 폐기하고 HHVM(HHVM)을 도입했다. HHVM은 페이스북이 개발한 PHP용 JIT 컴파일 기반 실행 엔진이다. 여기에는 여러 이유가 있었는데, 그중 하나는 HPHPc의 추가 성능 향상을 위한 곡선이 정체되었다는 점이었다. 또한 HPHPc는 `create_function()` 및 `eval()` 구문을 포함한 PHP 언어의 모든 기능을 완벽하게 지원하지 않았고, 1GB가 넘는 바이너리를 컴파일하여 여러 서버에 신속하게 배포해야 하는 복잡하고 자원 소모적인 배포 과정을 거쳐야 했다. 게다가 운영과 개발 환경의 일관성을 위해 HPHPc와 HPHPi를 병행 유지 관리하는 것이 점점 번거로워졌다. 마지막으로 HPHPc는 젠드와 완벽하게 호환되는 대체재가 아니었기에, 외부 고객들은 HPHPc를 사용하기 위해 전체 개발 및 배포 프로세스를 변경해야 했다.