Jamie Balfour

Welcome to my personal website.

Find out more about me, my personal projects, reviews, courses and much more here.

Jamie Balfour'sPersonal blog

I am shocked to be saying this, but ZPE 1.14.8 is already up to five times faster than ZPE 1.14.7, which was already up to three times faster than ZPE 1.14.6! 

This improvement has come from many changes in the runtime, ranging from variable and function lookups to how expressions are evaluated.

For comparison, here are the times for running the Standard Algorithms library:

Timer finished : 53ms
zpex -r stdAlgorithms.yas  0.56s user 0.04s system 95% cpu 0.623 total

Timer finished : 136ms
zpe -r stdAlgorithms.yas  2.22s user 0.24s system 336% cpu 0.733 total

After countless hours of development and over 3,000 builds, VWS has finally left beta and is now available as a working web server, supporting a variety of different features. Here are some of the key features (as well as some of my favourites):

  • HTTPS and TLS support (at last)
  • Unix socket support for connecting to PHP FPM
  • ZPE PM support from the box
  • Easy to write handlers
  • Web assets and bundles; /__vws_asset/ and /__vws_bundle/ (more below)
  • A control server (vws --control)
  • A Let's Encrypt installer

There are caveats to its use currently, however. For example, the Let's Encrypt installer is not perfect and is more Unix-oriented than Windows-oriented.

Now I mentioned vws_assets and vws_bundles. These are among my favourite features in VWS. These are clever little ways of simply including a library and VWS includes many by default. For example, let's just say I want jQuery on my website. I simply include the URL, 

/__vws_asset/jquery/

and VWS will provide jQuery. It will have jQuery pre-fetched, since the bundle will be downloaded first. 

But bundles are even better. We use them as follows:

/__vws_bundle/jquery,react,vue/

and VWS will combine these into a single file, thereby reducing HTTP requests and maintaining optimal speed. Not only that, but VWS will also keep a cache of these bundles to ensure it can quickly find them again.

Powered by DASH 2.0