Authors:
António Esteves
and
João Fernandes
Affiliation:
Centro ALGORITMI, School of Engineering, University of Minho, Campus de Gualtar, Braga and Portugal
Keyword(s):
Web Performance Optimization, Latency, Web Application, Django, Python.
Related
Ontology
Subjects/Areas/Topics:
Internet Technology
;
Web Information Systems and Technologies
;
Web Programming
;
Web Services and Web Engineering
Abstract:
This paper describes the process of optimizing the latency of Python-based Web applications. The case study used to validate the optimizations is an article sharing system, which was developed in Django. Memcached, Celery and Varnish enabled the implementation of additional performance optimizations. The latency of operations was measured, before and after the application of the optimization techniques. The optimization of the application was performed at various levels, including the transfer of content across the network and the back-end services. HTTP caching, data compression and minification techniques, as well as static content replication using Content Delivery Networks, were used. Partial update of the application’s pages on the front-end and asynchronous processing techniques were applied. The database utilization was optimized by creating indexes and by taking advantage of a NoSQL solution. Memory caching strategies, with distinct granularities, were implemented to store te
mplates and application objects. Furthermore, asynchronous task queues were used to perform some costly operations. All of the aforementioned techniques favorably contributed to the Web application’s latency decrease. Since Django operates on the back-end, and optimizations must be implemented at various levels, it was necessary to use other tools.
(More)