described optimizations. Server push is an HTTP/2
mechanism that enables sending proactively Web
resources without requiring an explicit request. This
mechanism eliminates the necessity to implement
certain performance enhancement techniques, such
as combining features of the same type and inlining
styles in the home page. The remaining optimizations
that were discussed are not affected by the new
version of the HTTP protocol and should continue to
be applied.
In the future, more performance optimization
techniques can be explored, as well as other
performance metrics besides latency, such as
throughput and resource utilization. Regarding
databases, there are mechanisms, such as sharding,
whose objective is sharing the information among
multiple partitions, as well as data replication, which
implies the existence of several copies of the same
information. These techniques allow to spread
the database access load across several processing
nodes, reducing resource utilization per node and
possibly increasing throughput and decreasing the
system’s response time. It is also possible to replicate
the application servers, taking advantage of load
balancing mechanisms, which aim to distribute
client requests across multiple server nodes. On the
client side, there are technologies such as Service
Worker, which is a service placed in the browser and
acts as a proxy, intercepting HTTP requests, and can
serve responses from its cache. This technology gives
users the ability to use certain parts of the application
while being offline, eliminating the need to contact
the server and decreasing the latency associated with
obtaining certain content.
ACKNOWLEDGMENT
This work has been supported by FCT – Fundação
para a Ciência e Tecnologia within the Project Scope:
UID/CEC/00319/2019.
REFERENCES
Anastasios, D. (2016). Website Performance Analysis and
Optimization. Master’s thesis, Harokopio University,
Greece.
Arcos, D. (2016). Efficient django. EuroPython.
Cao, B., Shi, M., and Li, C. (2017). The solution
of web font-end performance optimization. In
10th International Congress on Image and Signal
Processing. IEEE.
Cerny, T. and Donahoo, M. (2010a). Evaluation and
optimization of web application performance under
varying network conditions. In Modelling and
Simulation of Systems conference.
Cerny, T. and Donahoo, M. (2010b). Performance
optimization for enterprise web applications through
remote client simulation. In 7th EUROSIM Congress
on Modelling and Simulation.
Connolly, T. and Begg, C. (2005). Database Systems: A
Practical Approach to Design, Implementation and
Management. Addison Wesley.
Fielding, R., Gettys, J., and Berners-Lee, T. (1999).
Hypertext transfer protocol - http/1.1. RFC 2616.
Google (2017). Google page speed insights and rules.
developers.google.com/speed/docs/insights/rules.
Consultado em 19/10/2017.
Greenfeld, D. R. and Greenfeld, A. R. (2017). Two Scoops
of Django 1.11. Two Scoops Press.
Grigorik, I. (2013). High Performance Browser
Networking. O’Reilly.
Grigorik, I. (2017). Web fundamentals:
Optimizing content efficiency.
https://developers.google.com/web/fundamentals/-
performance/optimizing-content-efficiency/.
Consultado em 19/10/2017.
Holovaty, A. and Kaplan-Moss, J. (2009). The Definitive
Guide to Django: Web Development Done Right.
Apress.
Horat, D. and Arencibia, A. (2009). Web applications: A
proposal to improve response time and its application
to moodle. In Computer Aided Systems Theory
(EUROCAST), pages 218–225. Springer.
Manchanda, P. (2013). Analysis of Optimization
Techniques to Improve User Response Time of
Web Applications and Their Implementation for
MOODLE. In International Conference on Advances
in Information Technology, pages 150–161. Springer.
Meier, J., Vasireddy, S., Babbar, A., and Mackman, A.
(2004). Improving .net application performance
and scalability. https://msdn.microsoft.com/en-
us/library/ff647781.aspx (accessed in 12/oct/2017).
Ossa, B., Sahuquillo, J., Pont, A., and Gil, J. (2012). Key
factors in web latency savings in an experimental
prefetching system. Journal of Intelligent Information
Systems, 39:187–207.
Shivakumar, S. and Suresh, P. (2017). An analysis
of techniques and quality assessment for Web
performance optimization. Indian Journal of
Computer Science and Engineering, 8(2):61–69.
Smith, P. (2013). Professional Website Performance:
Optimizing the Front End and the Back End. John
Wiley and Sons, Inc.
Souders, S. (2007). High Performance Websites. O’Reilly.
Subrayen, B., Elangovan, G., Muthusamy, V., and
Anantharajan, A. (2013). A Case Study for Improving
the Performance of Web Application. International
Journal of Web Technology, 02(01):17–20.
Improving the Latency of Python-based Web Applications
201