# Dan Miller - Experimenting With HHVM at Etsy (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png) ## Metadata **Cover**:: https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png **Source**:: #from/readwise **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Dan Miller]] **Full Title**:: Experimenting With HHVM at Etsy **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [codeascraft.com](https://codeascraft.com/2015/04/06/experimenting-with-hhvm-at-etsy/) **Host**:: [[codeascraft.com]] **Highlighted**:: [[2021-02-21]] **Created**:: [[2022-09-26]] ## Highlights - HipHop Virtual Machine (HHVM) is an open-source virtual machine designed for executing programs written in PHP. - Ilya Grigorik’s “Breaking the 1000ms Time to Glass Mobile Barrier” #further-reading #rl https://www.youtube.com/watch?v=Il4swGfTOSM - Bespoke endpoints aggregate smaller, reusable, cacheable REST endpoints. - Bespoke endpoints don’t just fetch data on behalf of the client, they can also do it concurrently. - It can do this thanks to curl_multi. Matt Graham’s talk “Concurrent PHP in the Etsy API” from phpDay 2014 goes into more detail on how we use curl_multi. [curl_multi](http://php.net/manual/en/function.curl-multi-exec.php) https://vimeo.com/channels/phpday/104905610 - We wanted to verify that responses returned from HHVM were identical to those returned by PHP. - we also turned to another technique: teeing traffic. - We wrote an iRule on our f5 load balancer to clone HTTP traffic destined for one pool and send it to another. - HHVM optimizes CPU time, not IO time. - The HHVM team recommends that you warm up your HHVM process before having it serve production traffic https://github.com/facebook/hhvm/wiki/Performance-Tuning#warm-up-your-server---10