Adobe Commerce Magento 2.4 vs. Sylius a Symfony based eCommerce Framework

Sylius Ecommerce Paltform

Let's Go.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61echo "deb https://dl.bintray.com/loadimpact/deb stable main" | sudo tee -a /etc/apt/sources.listsudo apt-get updatesudo apt-get install k6

Simple Product Performance:

data_received..............: 1.5 MB 96 kB/s
data_sent..................: 2.6 kB 166 B/s
http_req_blocked...........: min=3.58µs med=3.97µs avg=40.81µs max=725.35µs p(95)=51.81µs
http_req_connecting........: min=0s med=0s avg=34.05µs max=681.03µs p(95)=34.05µs
http_req_duration..........: min=256.1ms med=258.56ms avg=261.41ms max=301.36ms p(95)=266.07ms
http_req_receiving.........: min=1.18ms med=1.25ms avg=1.65ms max=3.88ms p(95)=3.37ms
http_req_sending...........: min=17.8µs med=21.21µs avg=23.88µs max=52.48µs p(95)=35.74µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=254.89ms med=256.52ms avg=259.73ms max=299.59ms p(95)=264.35ms
http_reqs..................: 20 1.293711/s
iteration_duration.........: min=91.01µs med=768.37ms avg=701.89ms max=812.87ms p(95)=774.94ms
iterations.................: 20 1.293711/s
data_received..............: 308 kB 28 kB/s
data_sent..................: 2.9 kB 267 B/s
http_req_blocked...........: min=3.85µs med=4.46µs avg=22.12µs max=357.15µs p(95)=22.91µs
http_req_connecting........: min=0s med=0s avg=15.25µs max=305.11µs p(95)=15.25µs
http_req_duration..........: min=34.5ms med=35.18ms avg=35.22ms max=36.77ms p(95)=35.98ms
http_req_receiving.........: min=208.43µs med=250.7µs avg=251.95µs max=303.04µs p(95)=301.33µs
http_req_sending...........: min=14.45µs med=20.61µs avg=21.79µs max=54.6µs p(95)=24.98µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=34.25ms med=34.88ms avg=34.95ms max=36.52ms p(95)=35.71ms
http_reqs..................: 20 1.824021/s
iteration_duration.........: min=104.52µs med=545.72ms avg=496.21ms max=547.38ms p(95)=546.58ms
iterations.................: 20 1.824021/s

Configurable Product Performance

data_received..............: 2.0 MB 126 kB/s
data_sent..................: 2.4 kB 149 B/s
http_req_blocked...........: min=3.35µs med=4.12µs avg=40.38µs max=728.48µs p(95)=41.29µs
http_req_connecting........: min=0s med=0s avg=33.43µs max=668.6µs p(95)=33.43µs
http_req_duration..........: min=289.23ms med=292.9ms avg=296.08ms max=328.83ms p(95)=316.37ms
http_req_receiving.........: min=1.75ms med=1.79ms avg=2.02ms max=3.95ms p(95)=3.03ms
http_req_sending...........: min=15.73µs med=20.48µs avg=22.46µs max=58.44µs p(95)=27.21µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=287.46ms med=291.02ms avg=294.04ms max=326.99ms p(95)=314.52ms
http_reqs..................: 20 1.238122/s
iteration_duration.........: min=97.55µs med=803.06ms avg=733.41ms max=839.41ms p(95)=826.3ms
iterations.................: 20 1.238122/s
http_req_blocked...........: min=3.59µs   med=4.18µs   avg=20.01µs  max=297.79µs p(95)=35.58µs 
http_req_connecting........: min=0s med=0s avg=12.43µs max=248.61µs p(95)=12.43µs
http_req_duration..........: min=42.08ms med=42.79ms avg=42.82ms max=43.45ms p(95)=43.34ms
http_req_receiving.........: min=148.74µs med=205.89µs avg=214.5µs max=295.17µs p(95)=292.59µs
http_req_sending...........: min=13.87µs med=21.09µs avg=22.83µs max=54.71µs p(95)=30.84µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=41.86ms med=42.53ms avg=42.58ms max=43.22ms p(95)=43.13ms
http_reqs..................: 20 1.803815/s
iteration_duration.........: min=99.2µs med=553.32ms avg=503.16ms max=554.54ms p(95)=554.04ms
iterations.................: 20 1.803815/s

Category Page performance :

data_received..............: 4.5 MB 276 kB/s
data_sent..................: 2.6 kB 159 B/s
http_req_blocked...........: min=3.68µs med=4.18µs avg=41.48µs max=749.03µs p(95)=43.83µs
http_req_connecting........: min=0s med=0s avg=34.48µs max=689.61µs p(95)=34.48µs
http_req_duration..........: min=286.62ms med=290.68ms avg=300.36ms max=432.63ms p(95)=322.98ms
http_req_receiving.........: min=2.55ms med=2.72ms avg=3.32ms max=5.96ms p(95)=5.84ms
http_req_sending...........: min=14.96µs med=20.52µs avg=24.18µs max=54.73µs p(95)=50.93µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=283.93ms med=287.27ms avg=297.01ms max=429.88ms p(95)=317.24ms
http_reqs..................: 20 1.230701/s
iteration_duration.........: min=94.81µs med=800.45ms avg=737.32ms max=943.21ms p(95)=828.51ms
iterations.................: 20 1.230701/s
http_req_blocked...........: min=3.71µs   med=4.36µs   avg=20.16µs  max=313.03µs p(95)=26.74µs 
http_req_connecting........: min=0s med=0s avg=13.21µs max=264.36µs p(95)=13.21µs
http_req_duration..........: min=34.18ms med=35.04ms avg=35.07ms max=36.15ms p(95)=36.08ms
http_req_receiving.........: min=160.24µs med=187.16µs avg=197.86µs max=308.15µs p(95)=277.06µs
http_req_sending...........: min=15.64µs med=20.75µs avg=26.67µs max=120.14µs p(95)=46.27µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=33.89ms med=34.8ms avg=34.84ms max=35.95ms p(95)=35.83ms
http_reqs..................: 20 1.829379/s
iteration_duration.........: min=106.61µs med=545.62ms avg=496.1ms max=546.73ms p(95)=546.62ms
iterations.................: 20 1.829379/s
http_req_blocked...........: min=3.75µs   med=4.59µs   avg=41.31µs  max=734.21µs p(95)=47.12µs 
http_req_connecting........: min=0s med=0s avg=33.96µs max=679.2µs p(95)=33.96µs
http_req_duration..........: min=160.82ms med=162.08ms avg=163.41ms max=178.67ms p(95)=168.22ms
http_req_receiving.........: min=1.23ms med=1.27ms avg=1.91ms max=4.43ms p(95)=3.59ms
http_req_sending...........: min=18.83µs med=20.57µs avg=22.34µs max=53.29µs p(95)=24.37µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=159.54ms med=160.34ms avg=161.47ms max=177.33ms p(95)=163.92ms
http_reqs..................: 20 1.47991/s
iteration_duration.........: min=125.37µs med=672.39ms avg=612.85ms max=690.14ms p(95)=678.12ms
iterations.................: 20 1.47991/s
http_req_blocked...........: min=3.78µs   med=4.24µs   avg=20.48µs  max=324.25µs p(95)=22.94µs 
http_req_connecting........: min=0s med=0s avg=13.93µs max=278.66µs p(95)=13.93µs
http_req_duration..........: min=21ms med=21.51ms avg=21.63ms max=22.95ms p(95)=22.35ms
http_req_receiving.........: min=72.3µs med=103.61µs avg=112.48µs max=256.24µs p(95)=214.19µs
http_req_sending...........: min=18.75µs med=20.88µs avg=23.12µs max=59.99µs p(95)=27.36µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=20.91ms med=21.39ms avg=21.49ms max=22.68ms p(95)=22.23ms
http_reqs..................: 20 1.872535/s
iteration_duration.........: min=125.18µs med=532.11ms avg=483.91ms max=534.13ms p(95)=533ms
iterations.................: 20 1.872535/s

Add to Cart AJAX

Cart Page :

Rest API Performance Authentication :

http_req_blocked...........: min=3.5µs    med=4.1µs   avg=42.26µs  max=758.93µs p(95)=50.52µs 
http_req_connecting........: min=0s med=0s avg=35.44µs max=708.93µs p(95)=35.44µs
http_req_duration..........: min=71.45ms med=72.21ms avg=73.18ms max=83.79ms p(95)=75.61ms
http_req_receiving.........: min=49.53µs med=53.71µs avg=55.1µs max=62.9µs p(95)=61.52µs
http_req_sending...........: min=19.09µs med=21.88µs avg=23.89µs max=55.19µs p(95)=35.01µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=71.38ms med=72.13ms avg=73.1ms max=83.67ms p(95)=75.52ms
http_reqs..................: 20 1.710087/s
iteration_duration.........: min=120.96µs med=582.8ms avg=530.78ms max=595.43ms p(95)=585.83ms
iterations.................: 20 1.710087/s
http_req_blocked...........: min=3.62µs  med=4.18µs   avg=20.8µs  max=335.95µs p(95)=21.47µs 
http_req_connecting........: min=0s med=0s avg=14.26µs max=285.33µs p(95)=14.26µs
http_req_duration..........: min=8.87ms med=9.13ms avg=9.14ms max=9.51ms p(95)=9.47ms
http_req_receiving.........: min=56.73µs med=75.62µs avg=75.96µs max=92.53µs p(95)=89.38µs
http_req_sending...........: min=16.58µs med=20.24µs avg=22.55µs max=55.75µs p(95)=28.71µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=8.78ms med=9.03ms avg=9.04ms max=9.38ms p(95)=9.37ms
http_reqs..................: 20 1.92064/s
iteration_duration.........: min=95.44µs med=519.67ms avg=472.5ms max=520.64ms p(95)=520.02ms
iterations.................: 20 1.92064/s
+----------------------+-------------+--------+
| | Magento 2.4 | Sylius |
+----------------------+-------------+--------+
| Simple Product | 264.35 | 35.71 |
+----------------------+-------------+--------+
| Configurable Product | 314.52 | 43.13 |
+----------------------+-------------+--------+
| Category | 317.24 | 35.83 |
+----------------------+-------------+--------+
| CMS Page | 163.92 | 22.23 |
+----------------------+-------------+--------+
| Add to Cart AJAX | 497 | 69.44 |
+----------------------+-------------+--------+
| Cart Page | 365 | 90 |
+----------------------+-------------+--------+
| API Get Category | 75.52 | 9.37 |
+----------------------+-------------+--------+
Magento 2.4 vs. Sylius Performance Chart

Frontend Performance Product Page

+-----------+---------+--------------+
| MIME Type | Bytes | Uncompressed |
+-----------+---------+--------------+
| js | 659,494 | 2,625,687 |
+-----------+---------+--------------+
| image | 90,571 | 92,565 |
+-----------+---------+--------------+
| font | 74,204 | 74,204 |
+-----------+---------+--------------+
| css | 70,494 | 465,877 |
+-----------+---------+--------------+
| html | 23,654 | 109,305 |
+-----------+---------+--------------+
| other | 249 | 249 |
+-----------+---------+--------------+
| flash | 0 | 0 |
+-----------+---------+--------------+
| video | 0 | 0 |
+-----------+---------+--------------+
+-----------+---------+--------------+
| MIME Type | Bytes | Uncompressed |
+-----------+---------+--------------+
| image | 332,737 | 332,737 |
+-----------+---------+--------------+
| js | 144,416 | 507,928 |
+-----------+---------+--------------+
| css | 106,771 | 643,109 |
+-----------+---------+--------------+
| font | 95,344 | 95,344 |
+-----------+---------+--------------+
| html | 4,342 | 18,058 |
+-----------+---------+--------------+
| flash | 0 | 0 |
+-----------+---------+--------------+
| other | 0 | 0 |
+-----------+---------+--------------+
| video | 0 | 0 |
+-----------+---------+--------------+
Sylius Rendering Waterfall View

2. Product Page rendering

Magento Performance Times (ms)
min mean[+/-sd] median max
Connect: 38 38 0.0 38 38
Processing: 4004 4004 0.0 4004 4004
Waiting: 3580 3580 0.0 3580 3580
Total: 4042 4042 0.0 4042 4042
http_req_blocked...........: min=132.34ms med=132.34ms avg=132.34ms max=132.34ms p(95)=132.34ms
http_req_connecting........: min=64.95ms med=64.95ms avg=64.95ms max=64.95ms p(95)=64.95ms
http_req_duration..........: min=448.19ms med=448.19ms avg=448.19ms max=448.19ms p(95)=448.19ms
http_req_receiving.........: min=194.63ms med=194.63ms avg=194.63ms max=194.63ms p(95)=194.63ms
http_req_sending...........: min=61.54µs med=61.54µs avg=61.54µs max=61.54µs p(95)=61.54µs
http_req_tls_handshaking...: min=66.77ms med=66.77ms avg=66.77ms max=66.77ms p(95)=66.77ms
http_req_waiting...........: min=253.5ms med=253.5ms avg=253.5ms max=253.5ms p(95)=253.5ms
http_reqs..................: 1 0.900963/s
iteration_duration.........: min=114.27µs med=197.35µs avg=363.9ms max=1.09s p(95)=982.27ms
iterations.................: 1 0.900963/s

Throughput performance.

Physical CPU count = TTFB(seconds) * Users per second. 

Category page — 5,20,40 users

data_received..............: 4.8 MB 559 kB/s
data_sent..................: 4.8 kB 560 B/s
http_req_blocked...........: min=2.01µs med=3.08µs avg=85.45µs max=752.65µs p(95)=637.12µs
http_req_connecting........: min=0s med=0s avg=78.23µs max=709.66µs p(95)=605.61µs
http_req_duration..........: min=482.52ms med=1.05s avg=1.06s max=1.63s p(95)=1.3s
http_req_receiving.........: min=1.86ms med=6.62ms avg=10.01ms max=34.82ms p(95)=23.26ms
http_req_sending...........: min=10.48µs med=17.95µs avg=20.68µs max=77.18µs p(95)=39.81µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=479.93ms med=1.03s avg=1.05s max=1.62s p(95)=1.29s
http_reqs..................: 40 4.629349/s
iteration_duration.........: min=97.55µs med=1.05s avg=1.01s max=1.64s p(95)=1.28s
iterations.................: 40 4.629349/s
data_received..............: 661 kB 648 kB/s
data_sent..................: 5.3 kB 5.2 kB/s
http_req_blocked...........: min=2.04µs med=3.08µs avg=87.85µs max=751.98µs p(95)=667.82µs
http_req_connecting........: min=0s med=0s avg=80.53µs max=709.87µs p(95)=637.78µs
http_req_duration..........: min=50.81ms med=123.76ms avg=119.91ms max=157.64ms p(95)=154.39ms
http_req_receiving.........: min=39.08µs med=82.99µs avg=188µs max=1.02ms p(95)=753.47µs
http_req_sending...........: min=8.99µs med=17.38µs avg=20.46µs max=71.93µs p(95)=43.75µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=50.15ms med=123.66ms avg=119.7ms max=157.53ms p(95)=154.31ms
http_reqs..................: 40 39.255346/s
iteration_duration.........: min=138.78µs med=123.22ms avg=114.78ms max=158.3ms p(95)=154.63ms
iterations.................: 40 39.255346/s

Magento 2, 20 users

http_req_blocked...........: min=1.99µs   med=3.08µs  avg=227.87µs max=1.58ms   p(95)=1.08ms  
http_req_connecting........: min=0s med=0s avg=215.37µs max=1.51ms p(95)=1.05ms
http_req_duration..........: min=876.29ms med=4.54s avg=4.35s max=8.07s p(95)=6.9s
http_req_receiving.........: min=1.97ms med=26.82ms avg=33.6ms max=144.99ms p(95)=77.43ms
http_req_sending...........: min=8.32µs med=17.02µs avg=42.77µs max=287.63µs p(95)=218.93µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=873.48ms med=4.5s avg=4.31s max=8s p(95)=6.87s
http_reqs..................: 80 4.340769/s
iteration_duration.........: min=111.46µs med=4.51s avg=4.24s max=8.07s p(95)=6.85s
iterations.................: 80 4.340769/s
data_received..............: 1.3 MB 642 kB/s
data_sent..................: 11 kB 5.2 kB/s
http_req_blocked...........: min=1.7µs med=2.98µs avg=426.01µs max=3.24ms p(95)=2.56ms
http_req_connecting........: min=0s med=0s avg=407.88µs max=3.17ms p(95)=2.51ms
http_req_duration..........: min=54.12ms med=500.59ms avg=459.25ms max=571.1ms p(95)=553.49ms
http_req_receiving.........: min=526.52µs med=581.77µs avg=707.27µs max=3.59ms p(95)=1.39ms
http_req_sending...........: min=9.04µs med=17.25µs avg=67.61µs max=350.61µs p(95)=305.51µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=53.33ms med=499.52ms avg=458.48ms max=570.49ms p(95)=552.88ms
http_reqs..................: 80 38.833384/s
iteration_duration.........: min=140.09µs med=500.27ms avg=448.94ms max=571.54ms p(95)=553.59ms
iterations.................: 80 38.833384/s
data_received..............: 12 MB 526 kB/s
data_sent..................: 12 kB 529 B/s
http_req_blocked...........: min=1.95µs med=3.68µs avg=801.62µs max=4.95ms p(95)=3.92ms
http_req_connecting........: min=0s med=0s avg=784.98µs max=4.89ms p(95)=3.89ms
http_req_duration..........: min=822.24ms med=8.5s avg=8.38s max=15.48s p(95)=14.61s
http_req_receiving.........: min=1.86ms med=36.21ms avg=44.3ms max=198.8ms p(95)=100.5ms
http_req_sending...........: min=8.43µs med=19µs avg=162.29µs max=750.12µs p(95)=664.62µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=816.52ms med=8.46s avg=8.33s max=15.45s p(95)=14.51s
http_reqs..................: 100 4.346488/s
iteration_duration.........: min=94.95µs med=8.49s avg=8.22s max=15.48s p(95)=14.6s
iterations.................: 100 4.346488/s
http_req_blocked...........: min=1.97µs   med=3.75µs   avg=1.66ms   max=8.33ms   p(95)=6.78ms  
http_req_connecting........: min=0s med=0s avg=1.6ms max=8.28ms p(95)=6.73ms
http_req_duration..........: min=58.02ms med=986.18ms avg=824.05ms max=1.08s p(95)=1.05s
http_req_receiving.........: min=156.17µs med=570.94µs avg=590.48µs max=1.27ms p(95)=756.95µs
http_req_sending...........: min=9.14µs med=19.29µs avg=118.4µs max=547.09µs p(95)=391.87µs
http_req_tls_handshaking...: min=0s med=0s avg=0s max=0s p(95)=0s
http_req_waiting...........: min=57.56ms med=985.58ms avg=823.34ms max=1.08s p(95)=1.05s
http_reqs..................: 100 39.019238/s
iteration_duration.........: min=136.71µs med=986.19ms avg=810ms max=1.08s p(95)=1.05s
iterations.................: 100 39.019238/s
0.270 * 40 = 10.8 physical CPU or 20 vCPU (x2)2 vCPUs cost on AWS is 77$, 20 vCPUs = 770$
0.035 * 40 = 1.4 physical CPU or 2.8 vCPU (x2)2 vCPUs cost on AWS = 77$
+--------------+-------------+--------+
| | Magento 2.4 | Sylius |
+--------------+-------------+--------+
| 5 Customers | 1290 | 154.63 |
+--------------+-------------+--------+
| 20 Customers | 6870 | 553.59 |
+--------------+-------------+--------+
| 40 Customers | 14510 | 1050 |
+--------------+-------------+--------+

--

--

--

True Stories about Magento 2. Melting metal server infrastructure into cloud solutions. Donate: https://paypal.me/magentasoftware?country.x=US&locale.x=en_US

Love podcasts or audiobooks? Learn on the go with our new app.

Embracing the Hacker Community at Hackcon VII

Nitrux first impressions

InCircle Games X Axie Infinity Manager and Trainer Recruiting!

9 Best Strings Problem Solved Using C

Things I Learnt Installing Arch Linux (btw)

50+ Web Development Buzzwords in 2022

How UniMe implement the secured end-to-end chat app

Deploying Kafka with plain SASL Authentication using Docker

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
Yegor Shytikov

Yegor Shytikov

True Stories about Magento 2. Melting metal server infrastructure into cloud solutions. Donate: https://paypal.me/magentasoftware?country.x=US&locale.x=en_US

More from Medium

Implementing Event Sourcing PHP Application in 15 minutes

Serializing data in PHP II: A simple primer on database interactions

PHP 7.4 vs PHP 8.1 Magento 2 an Adobe Commerce Performance

How to use Twitter Snowflake IDs for your database primary keys in Laravel