Skip to Content

Odoo 15 vs Odoo 16

General overview of changes

Odoo 16 has introduced significant improvements in terms of product performance both on the Back End and Front End.

Let's start with the updates made to the Front End regarding the migration to the OWL Framework. Introduced in Odoo 14, the migration to OWL has been completed and now manages 99% of the JS codebase, leaving only 1% to the old engine for the Point of Sale (PoS) module, which has specific requirements.

The use of this new version of the framework has allowed to reduce the JS codebase by 30% and the CSS one by 68%.

Having completely rewritten the graphics engine, the dark mode navigation is now also available.

Let's now move on to the changes made to the Back End:  

  • The Chatter no longer uses long polling but websockets,  
  • The consumption of large files has been optimized and can also be managed by Nginx,  
  • Fewer RPC calls: this allows for faster processing of One2Many relationships within views  
  • Loading bars no longer make HTTP requests but are handled via websocket.

Other changes concern the speed of process execution and interfacing with the database: 

The onchange method has been deprecated in favor of compute and precompute, translations are no longer managed by the database but use Json DB, and B Tree indexes of PostgreSQL have been introduced.

Features of the test environment

Two servers with identical performance are used, let's see in detail how the parameters related to the memory and workers of Odoo have been calculated and set.

Number of CPUs: 2

Threads: 2

Let's consider a number of 12 competing users

Workers: 3 (6 users per worker + 1 dedicated to cron)

 

We consider that 20% are heavy requests and 80% are simple requests to the server.

We perform server tuning by setting these configuration values:

workers = 3

max_cron_threads = 1

limit_time_cpu = 60

limit_time_real = 170

limit_memory_soft = 25273917440

limit_request = 8196

 

Odoo Enterprise offers a profiling tool that we will use for some of the comparison tests.

Both databases that will be used are prepopulated with the demo dataset provided by Odoo.

Number of RPC requests executed

During the presentation of the performance improvements released with the latest version of the product, Odoo states that it has reduced the number of HTTP calls (XML-RPC or JSON-RPC) made to the server, especially regarding the management of O2M (One2Many) relationships.

The purpose of this test is to see how many requests are made to the server in a specific use-case, in this case: creating a quote and issuing the related invoice.

Odoo 15

We created a quote, added some products, and generated an invoice in about 10 seconds. Throughout the navigation, 294 requests were profiled and 9705 entries were counted.

Odoo 16

The same identical test carried out on Odoo 16, brings a truly remarkable result.

The total usage time is 6 seconds. During browsing, 71 requests were profiled and 2217 entries were counted. Impressive, isn't it?  

Difference between Long Polling and Web Sockets

Long polling and WebSockets are both methods for real-time communication between a client and a server, but they differ in their implementation and performance characteristics.

Long Polling:

  • The client sends a request to the server and keeps the connection open until new data is available or a timeout occurs.
  • The client then repeats the request and the process continues, simulating a continuous connection.
  • It uses HTTP and can be a simple solution, but it leads to increased latency due to repeated handshakes and re-establishment of connections.

WebSockets:

  • Uses a persistent connection between the client and the server, allowing bidirectional real-time communication.
  • The connection is established only once and remains open for the duration of the communication.
  • Use the WebSockets protocol designed specifically for real-time communication, resulting in reduced latency compared to long polling.

In summary, WebSockets provide a more efficient and effective real-time communication solution compared to long polling, but they may require additional server-side support and configuration.

Let's compare the data

Requests:

Entries:

Total time:

Odoo 16 is even 40% faster than Odoo 15!

Conclusions

Over time, Odoo proves to be a product in constant growth and updating. From version to version, it is progressing to offer increasingly optimized and high-performing tools.

Compared to competing software, it demonstrates an ease of use that allows for real time savings in business management operations. Allowing users to focus more and more on activities that enable the company to be more profitable.

Social network