AsynStack performance

AsynStack is designed with optimization in mind from the very beginning. Technologies and software are carefully chosen to bring the hardware to its edge. The result reaches impressive 1000 requests per second on a $10/mo VPS and up to 5.3 times faster than common LAMP stack. The Asyncode Runtime makes only 30% overhead over the simplest Python's "Hello World!" app.

Asynchrony

The biggest webapp optimization of recent years is transition from traditional sequential and threaded models into asynchronous equivalents. The performance gains are visible across all parts of applications but most in the responsivity of user interfaces running near entirely in the web browser. AsynStack delivers solution to move computations back to user machines and focus on providing secure, fast multiuser experience and data storage on the server side. The performance gains of moving computations to users machines are widely known as tremendous and AsynStack pushes this idea to its edge by using JSON and its XML equivalent ObjectML as internal data format starting with badabase and finishing with user interface.

Excessive XSLT usage

XSLT stands for eXtensible Stylesheet Language Transformations. It is probably the most neglected language supported across all major web browsers (near 90% of overal server's traffic). XSLT is used to merge data and template to a single HTML document. The shift of computations to client machine results in up to two times more requests per second than in server-side HTML generation mode. In the terms of network efficiency, XSLT can cut up to 60% of server's output transfer - it sends XSLT-based template once and then just data.

Developers can choose between their own XSLT solutions and Asyncode Frontend - the pure XML front-end framework incorporating XSLT, YUI Library and some CSS. AC Frontend's XSLT solution makes even more difference because of great simplicity of language which results in better compression of data (check out the source of this page as a good example).

Nginx and UWSGI

The Nginx and USWGI combo is the most reliable WSGI solution out there. And it is fast! Here is a benchmark on the topic. Nginx simply can't use RAM or CPU. The bottleneck is your network cable

Python

According to http://shootout.alioth.debian.org/, Python is fastest stable scripting language available*. When the speed of algorithms are not satisfying, we can always easily write library in the fastest language in the world which is C (or even in assembly language which is supported by C compilers). As you can see CPython slightly outperforms JRuby and is nearly 2 times faster than PHP, Ruby and PERL. But these tests are not anywhere near real-world examples. CPython has a very fast IO module written in pure C and this is exactly what is important in webapps. Additionaly we know which Python's internals are slow and we don't use them. Because of that we could bring to you software that generates only 40% overhead over simple "Hello World!" app written in pure Python. If even this is not satisfying for you, there is also PyPy Python or C (or assembly language:) ) extensions which can speed up software even more!

* We wish JavaScript V8 engine with Node.JS was stable enough so we could write the code in that language, but it is not the case as of now according to main developer of Node.JS.

Caching system

There are many ways to develop software, but if optimization is among the main concerns, there is the only one good way - caching. We implemented software to run in two phases. First request is the slowest because it compiles app source code to more effective structures, but every next request is delivered near entirely from extensive cache system. The current state of the art is that cache speeds up page generation up to 10 times!

Additionally common HTTP caching system and Asyncode's free hosting of AC Frontend static files can result in another 60% savings on output traffic (XSLT savings not included).

Database

The recommended MongoDB is not only significantly faster than MySQL or PostgreSQL, but also was around 2.3 times faster than EXT4 filesystem in our tests! Because of document-oriented architecture, applications needs to query database once in most cases. This big difference is achieved through only change of habits and not by sacrificing any functionality of relational databases. Still MongoDB is pretty young and don't have much functionality found in SQL as of yet, but we did it for them by extending ObjectPath selector language with many functions. ObjectPath is only two times slower than Python itself so overal result of PG to Mongo switch is 5 times faster app in average and near unlimited in the worst case!

Quick summary

CPU

Runs efficiently even on smallest VPS with approximately 500MHz of computational power.

RAM

256MB of ram is more than enough to successfully run AsynStack and response to any amount of users requests.

Throughput

Up to 1000 requests per second on $10/mo VPS

Traffic

Up to 60% savings on an output traffic

Oprimization services in support plans

Installing and configuring help

All support plans include installation and configuration of Stack performed by our staff and help with performance issues through e-mail or support center. Additionaly there is one per year "hardware meets its edge event support" product which is an attempt to increase throughput of Stack and user application so that buying bigger hosting plan or new hardware is postponed as far as it could.

Availability of even faster algorithms

The commercial license of Asyncode Runtime included in all support plans allows you to use even more optimized version which has more efficient algorithms than in community version. There are plans for rewriting ObjectML serializer to C and do great optimizations in the ObjectPath implementation.

Profiller and debugger - Developer plans

Profiller enables developers to easily track slowest parts of their applications while debugger shows clearly what system do and why. The slowest parts can be fixed internally or with help form our staff.

HTTP related optimizations

Help with Javascript and CSS files versioning, implementing CSS sprites technique, using browser caches and lowering ammount of requests.

Databases optimizations

The most advanced supports includes help with migrating SQL based databases to MongoDB, optimizing Mongo's queries and their ammount, using Mongo as a caching system.


© Copyright Asyncode Ltd. All Rights Reserved Home | Contact
Powered by Asyncode Env