Reactive programming and its effect on performance and the development process
(2017) In LU-CS-EX 2017-33 EDA920 20171Department of Computer Science
- Abstract
- The focus of this master’s thesis is to evaluate the effect of reactive programming on Playtech BGT Sports content server. The effect is evaluated mainly from a performance aspect, but a development process aspect is also taken into consideration. The content server is working in real-time and is required to have low latency and high throughput of processing of data. These characteristics are important to supply customers with the latest information.
A comprehensive theoretical research was conducted in order to be able to implement reactive prototypes correctly and to avoid common pitfalls. Three types of reactive prototypes of the content server were implemented with different execution contexts. The prototypes were tested and the... (More) - The focus of this master’s thesis is to evaluate the effect of reactive programming on Playtech BGT Sports content server. The effect is evaluated mainly from a performance aspect, but a development process aspect is also taken into consideration. The content server is working in real-time and is required to have low latency and high throughput of processing of data. These characteristics are important to supply customers with the latest information.
A comprehensive theoretical research was conducted in order to be able to implement reactive prototypes correctly and to avoid common pitfalls. Three types of reactive prototypes of the content server were implemented with different execution contexts. The prototypes were tested and the results were compared to the results of a fully synchronous solution. The results showed that reactive programming can increase the performance during high loads. The solutions performed similarly during low load. During high load one prototype stood out with 100% of throughput and low latency. This prototype had an execution context in the thread which subscribed to the result from the executed callback methods.
Reactive programming did in this case increase performance during high loads, but it is worth noting that the execution context is important for the performance. The development process did not change significantly, but reactive programming added complexity to the code and the need for a developer with extensive knowledge in reactive programming. (Less)
Please use this url to cite or link to this publication:
http://lup.lub.lu.se/student-papers/record/8932146
- author
- Hochbergs, Gustav LU
- supervisor
- organization
- course
- EDA920 20171
- year
- 2017
- type
- H3 - Professional qualifications (4 Years - )
- subject
- keywords
- Reactive programming, declarative programming, asynchronous programming, non-blocking execution
- publication/series
- LU-CS-EX 2017-33
- report number
- LU-CS-EX 2017-33
- ISSN
- 1650-2884
- language
- English
- id
- 8932146
- date added to LUP
- 2018-01-17 18:26:39
- date last changed
- 2018-01-17 18:26:39
@misc{8932146, abstract = {{The focus of this master’s thesis is to evaluate the effect of reactive programming on Playtech BGT Sports content server. The effect is evaluated mainly from a performance aspect, but a development process aspect is also taken into consideration. The content server is working in real-time and is required to have low latency and high throughput of processing of data. These characteristics are important to supply customers with the latest information. A comprehensive theoretical research was conducted in order to be able to implement reactive prototypes correctly and to avoid common pitfalls. Three types of reactive prototypes of the content server were implemented with different execution contexts. The prototypes were tested and the results were compared to the results of a fully synchronous solution. The results showed that reactive programming can increase the performance during high loads. The solutions performed similarly during low load. During high load one prototype stood out with 100% of throughput and low latency. This prototype had an execution context in the thread which subscribed to the result from the executed callback methods. Reactive programming did in this case increase performance during high loads, but it is worth noting that the execution context is important for the performance. The development process did not change significantly, but reactive programming added complexity to the code and the need for a developer with extensive knowledge in reactive programming.}}, author = {{Hochbergs, Gustav}}, issn = {{1650-2884}}, language = {{eng}}, note = {{Student Paper}}, series = {{LU-CS-EX 2017-33}}, title = {{Reactive programming and its effect on performance and the development process}}, year = {{2017}}, }