Magento 2 Commerce vs. ORO Commerce Performance and architecture

Organizing the source code in a conventional structure

Providing tools for continuous storage of application data, validation of income data against some set of rules.

Databases Management (Doctrine ORM)

Oro Commerce versus Magento has mature and modern ORM.

$query = $dql->createQuery(‘SELECT u.name FROM CmsUser u WHERE u.id BETWEEN ?1 AND ?2');$query->setParameter(1, 123);$query->setParameter(2, 321);$usernames = $query->getResult();
OroCrm Performance

So there is no reason to use an antiquated Magento 2 framework. The 2 best and most modern PHP frameworks like Symfony.

PHP eCommerce technology trends 2020:

  • jQuery + jQuery-UI
  • Bootstrap
  • Backbone + underscore 8KB
  • Chaplin 20K

eCommerce Cloud offering

Also, ORO Commerce provides really great cloud infrastructure as a service. When Magento offers a silly cloudy solution that doesn’t work at all.

ORO Cloud has:

Web Nodes Servers

Google Load Balancer distributes the incoming traffic to a set of web nodes that enable on-demand scaling, fault tolerance, DDoS protection, etc. At least two web nodes are allocated in different zones for fault-tolerance.

Search Index

To speed up the search, Oro application data is indexed according to the application configurations and stored in the search index. As a search index provider, OroCloud instances use ElasticSearch which provides cluster architecture out-of-the-box as well as the ability to add more nodes to clusters to spread the load and enhance reliability.

Database

Oro application data is stored in the enterprise-grade PostgreSQL relational database. Each environment has at least two dedicated PostgreSQL instances, one in the main zone and another in the secondary zone. If the instance in the main zone becomes unresponsive, the environment automatically switches to the secondary zone enabling the database failover.

Oro Commerce vs. Magento 2.4 performance

eCommerce Scenarios tested:

Test Scenarios:

  1. Category page, PLP
  2. Search
  3. Product Page, PDP
  4. Test CMS page — “Hello World!” test

Why Benchmarking “Hello, World!”?

There is a lot to be learned from careful observation of a program and its complete Magento surrounding context, even one as “trivial” as HelloWorld.

Magento 2 Category Page Performance

INFO[0012] Tested URL: /collections/performance-fabrics.html  source=consolerunning (00m11.5s), 0/1 VUs, 20 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m11.4s/10m0s 20/20 shared iters
█ setup█ teardowndata_received..............: 5.0 MB 439 kB/s
data_sent..................: 2.8 kB 244 B/s
http_req_blocked...........: min=4.43µs med=4.84µs avg=16.87µs max=241.13µs p(95)=18.26µs
http_req_connecting........: min=0s med=0s avg=9.42µs max=188.41µs p(95)=9.42µs
http_req_duration..........: min=336.15ms med=354.05ms avg=370.79ms max=594.44ms p(95)=449.83ms
http_req_receiving.........: min=1.53ms med=2.17ms avg=3.01ms max=10.79ms p(95)=5.84ms
http_req_sending...........: min=22.52µs med=25.21µs avg=28.83µs max=84.56µs p(95)=44.09µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=334.07ms med=351.95ms avg=367.75ms max=583.62ms p(95)=447.09ms
http_reqs..................: 20 1.741933/s
iteration_duration.........: min=123.48µs med=552.87ms avg=519.47ms max=795.11ms p(95)=640.39ms

ORO Commerce Category Page Performance

Tested URL: /navigation-root/products/by-category/industrial/lighting-products  source=consolerunning (00m03.7s), 0/1 VUs, 10 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m03.7s/10m0s 10/10 shared iters
█ setup█ teardowndata_received..............: 2.5 MB 668 kB/s
data_sent..................: 14 kB 3.7 kB/s
http_req_blocked...........: min=281ns med=531ns avg=7.5ms max=75.06ms p(95)=41.28ms
http_req_connecting........: min=0s med=0s avg=21.21µs max=212.15µs p(95)=116.68µs
http_req_duration..........: min=251.12ms med=257.68ms avg=259.41ms max=270.43ms p(95)=269.27ms
http_req_receiving.........: min=757.61µs med=852.38µs avg=1.01ms max=2.06ms p(95)=1.65ms
http_req_sending...........: min=22.51µs med=30.3µs avg=36.2µs max=98.85µs p(95)=72.63µs
http_req_tls_handshaking...: min=0s med=0s avg=180.72µs max=1.8ms p(95)=993.96µs
http_req_waiting...........: min=250.21ms med=256.72ms avg=258.37ms max=269.58ms p(95)=268.42ms
http_reqs..................: 10 3.698205/s
iteration_duration.........: min=98.93µs med=258.09ms avg=306.13ms max=431.11ms p(95)=397.97ms

Magento 2 Search Performance

Tested URL: /catalogsearch/result/?q=shirt  source=consolerunning (00m10.7s), 0/1 VUs, 20 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m10.6s/10m0s 20/20 shared iters
█ setup█ teardowndata_received..............: 2.2 MB 201 kB/s
data_sent..................: 2.7 kB 249 B/s
http_req_blocked...........: min=4.61µs med=5.18µs avg=19.08µs max=275.19µs p(95)=22.91µs
http_req_connecting........: min=0s med=0s avg=10.87µs max=217.57µs p(95)=10.87µs
http_req_duration..........: min=299.96ms med=321.33ms avg=330.51ms max=428.45ms p(95)=367.26ms
http_req_receiving.........: min=2.59ms med=5.06ms avg=5.59ms max=14.12ms p(95)=8.35ms
http_req_sending...........: min=22.6µs med=25.04µs avg=28.03µs max=83.85µs p(95)=32.11µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=294.18ms med=314.65ms avg=324.88ms max=422.23ms p(95)=363.49ms
http_reqs..................: 20 1.8725/s
iteration_duration.........: min=137.72µs med=520.42ms avg=482.88ms max=628.99ms p(95)=564.3ms

ORO Search Performance

Tested URL: /product/search?search=light  source=consolerunning (00m05.0s), 0/1 VUs, 10 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m05.0s/10m0s 10/10 shared iters
█ setup█ teardowndata_received..............: 6.5 MB 1.3 MB/s
data_sent..................: 33 kB 6.6 kB/s
http_req_blocked...........: min=262ns med=572ns avg=242.32µs max=2.41ms p(95)=1.33ms
http_req_connecting........: min=0s med=0s avg=17.79µs max=177.97µs p(95)=97.88µs
http_req_duration..........: min=485.27ms med=498.38ms avg=500.17ms max=528.94ms p(95)=520.57ms
http_req_receiving.........: min=1.85ms med=2.21ms avg=2.41ms max=4.03ms p(95)=3.49ms
http_req_sending...........: min=21.94µs med=26.95µs avg=33.97µs max=99.87µs p(95)=71.44µs
http_req_tls_handshaking...: min=0s med=0s avg=178.48µs max=1.78ms p(95)=981.65µs
http_req_waiting...........: min=283.38ms med=296.37ms avg=297.72ms max=324.8ms p(95)=317.06ms
http_reqs..................: 10 2.986672/s
iteration_duration.........: min=106.61µs med=394.5ms avg=317.35ms max=431.79ms p(95)=420.22ms

Magento 2 Product Page Simple Performance, PDP

Tested URL: /didi-sport-watch.html  source=consolerunning (00m09.2s), 0/1 VUs, 20 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m09.2s/10m0s 20/20 shared iters
█ setup█ teardowndata_received..............: 1.2 MB 133 kB/s
data_sent..................: 2.5 kB 271 B/s
http_req_blocked...........: min=4.69µs med=5.27µs avg=19.08µs max=279.47µs p(95)=22.47µs
http_req_connecting........: min=0s med=0s avg=10.07µs max=201.47µs p(95)=10.07µs
http_req_duration..........: min=248.29ms med=251.61ms avg=260.13ms max=408.41ms p(95)=268.09ms
http_req_receiving.........: min=937.24µs med=1.17ms avg=1.59ms max=4.12ms p(95)=3.8ms
http_req_sending...........: min=22.03µs med=24.65µs avg=28.83µs max=94.81µs p(95)=33.45µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=247.29ms med=250.14ms avg=258.51ms max=407.23ms p(95)=266.33ms
http_reqs..................: 20 2.165153/s
iteration_duration.........: min=121.41µs med=451.88ms avg=418.87ms max=608.98ms p(95)=461.11ms

ORO Commerce Product Page Performance

Tested URL: navigation-root/products/by-category/industrial/lighting-products/_item/industrial-handheld-flashlight  source=consolerunning (00m03.1s), 0/1 VUs, 10 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m03.1s/10m0s 10/10 shared iters
█ setup█ teardowndata_received..............: 1.8 MB 571 kB/s
data_sent..................: 10 kB 3.3 kB/s
http_req_blocked...........: min=265ns med=512ns avg=238.54µs max=2.38ms p(95)=1.3ms
http_req_connecting........: min=0s med=0s avg=18.54µs max=185.49µs p(95)=102.02µs
http_req_duration..........: min=200.96ms med=206.06ms avg=209.93ms max=233.38ms p(95)=224.73ms
http_req_receiving.........: min=597.66µs med=695.84µs avg=827.46µs max=1.93ms p(95)=1.45ms
http_req_sending...........: min=24.98µs med=31.76µs avg=38.96µs max=108.59µs p(95)=76.67µs
http_req_tls_handshaking...: min=0s med=0s avg=180.02µs max=1.8ms p(95)=990.11µs
http_req_waiting...........: min=200.31ms med=205.3ms avg=209.06ms max=231.34ms p(95)=223.32ms
http_reqs..................: 10 3.186143/s
iteration_duration.........: min=104.77µs med=205.97ms avg=258.84ms max=236.29ms p(95)=224.35ms

Magento 2 CMS Page Hello World TEST

Tested URL: /customer-service  source=consolerunning (00m07.3s), 0/1 VUs, 20 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m07.3s/10m0s 20/20 shared iters
█ setup█ teardowndata_received..............: 712 kB 97 kB/s
data_sent..................: 2.4 kB 328 B/s
http_req_blocked...........: min=4.58µs med=5.28µs avg=19.09µs max=279.85µs p(95)=20.35µs
http_req_connecting........: min=0s med=0s avg=10.1µs max=202.11µs p(95)=10.1µs
http_req_duration..........: min=157.49ms med=159.28ms avg=164.45ms max=261.55ms p(95)=167.27ms
http_req_receiving.........: min=682.58µs med=829.21µs avg=1ms max=2.44ms p(95)=1.92ms
http_req_sending...........: min=22.41µs med=24.03µs avg=28.26µs max=89.67µs p(95)=43.27µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=156.45ms med=158.28ms avg=163.41ms max=260.65ms p(95)=165.39ms
http_reqs..................: 20 2.727626/s
iteration_duration.........: min=132.59µs med=359.65ms avg=331.88ms max=462.15ms p(95)=362.75ms

ORO Commerce CMS Page Hello World TEST

Tested URL: /about  source=consolerunning (00m01.6s), 0/1 VUs, 10 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs 00m01.5s/10m0s 10/10 shared iters
█ setup█ teardowndata_received..............: 523 kB 332 kB/s
data_sent..................: 3.7 kB 2.4 kB/s
http_req_blocked...........: min=282ns med=475ns avg=238.66µs max=2.38ms p(95)=1.31ms
http_req_connecting........: min=0s med=0s avg=18.28µs max=182.8µs p(95)=100.54µs
http_req_duration..........: min=118.39ms med=113.34ms avg=133.41ms max=147.32ms p(95)=147.22ms
http_req_receiving.........: min=118.13µs med=178.23µs avg=177.25µs max=223.22µs p(95)=221.85µs
http_req_sending...........: min=21.28µs med=28.35µs avg=37.91µs max=90.9µs p(95)=70.32µs
http_req_tls_handshaking...: min=0s med=0s avg=177.29µs max=1.77ms p(95)=975.12µs
http_req_waiting...........: min=98.15ms med=108.16ms avg=113.19ms max=127.14ms p(95)=117.03ms
http_reqs..................: 10 6.362119/s
iteration_duration.........: min=103.99µs med=113.76ms avg=108.41ms max=137.72ms p(95)=147.6ms

Pivot Table

+-----------------+-------------+--------------+
| | Magento 2.4 | ORO Commerce |
+-----------------+-------------+--------------+
| Simple Product | 266.33 | 223.32 |
+-----------------+-------------+--------------+
| Hello World | 260.65 | 127.14 |
+-----------------+-------------+--------------+
| Category | 447 | 268.42 |
+-----------------+-------------+--------------+
| Search | 422.23 | 324.8 |
+-----------------+-------------+--------------+
ORO Commerce VS Magento 2.4 performance

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store