Django (Python) vs Stdlib (Go): Performance Benchmark in Kubernetes

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024

ความคิดเห็น • 375

  • @AntonPutra
    @AntonPutra  12 วันที่ผ่านมา +11

    👋What should I test next???
    👉 [Playlist] New Benchmarks: th-cam.com/play/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn.html&si=p-UOaVM_6_SFx52H

    • @chetana9802
      @chetana9802 12 วันที่ผ่านมา +3

      Hey
      django is old, try fastapi or sanic

    • @KozakZabava
      @KozakZabava 12 วันที่ผ่านมา +1

      Nest.js vs Rocket(rust)??

    • @artemxyi
      @artemxyi 12 วันที่ผ่านมา +1

      Please try Ntex(Rust) vs Axum vs Tokio vs Actix vs Drogon(c++)

    • @EduardoSantos-wg8or
      @EduardoSantos-wg8or 12 วันที่ผ่านมา

      I'm curious about frameworks that I believe are a little less popular, e.g. phalcon (php) or drogon (c++)

    • @Mr.BinarySniper
      @Mr.BinarySniper 12 วันที่ผ่านมา +3

      Bun vs Deno vs Nodejs please please please.

  • @speirnhujin8940
    @speirnhujin8940 12 วันที่ผ่านมา +210

    Comparison between FastAPI and Go stdlib seems much more appropriate, FastAPI focuses on speed and has a lot less "bloat" than Django

    • @oktay9784
      @oktay9784 12 วันที่ผ่านมา +32

      There is not much performance difference between Django and FastAPI. Because they are both Python frameworks. That's why they are both very slow.
      If you think FastAPI can compete with Go stdlib, you can take a look at TechEmpower benchmarks.

    • @GeoGuyz
      @GeoGuyz 12 วันที่ผ่านมา

      @@oktay9784 even if it does go still has fiber

    • @sargentomili
      @sargentomili 12 วันที่ผ่านมา +14

      @@oktay9784 Fasta Api relay on Pydantic (Rust) and many C librarys so i am not so sure.

    • @hermes6910
      @hermes6910 12 วันที่ผ่านมา

      ​@@oktay9784 I'm not a pytonista but I have a lot of doubts about a full framework like Django being as lightweight as something like FastAPI.
      And from FastAPI themselves on their homepage says: ‘The main features are: Fast: Very high performance, on par with NodeJS and Go (thanks to Starlette and Pydantic).’
      This doesn't mean that FastAPI will achieve the same results as Go despite what it says.
      But since you're comparing a very fast language (Go), you have to choose the fatest library/framework for something as slow as Python.

    • @deez_dev
      @deez_dev 12 วันที่ผ่านมา +11

      I was going to say that too :)
      FastAPI vs stdlib would be more interesting for sure

  • @silthstraider6542
    @silthstraider6542 12 วันที่ผ่านมา +134

    I really want to see Django vs Flask vs FastAPI video

    • @dupdrop
      @dupdrop 12 วันที่ผ่านมา +18

      Racing snails against each other is at least fair... ;)
      Also vs Litestar

    • @silthstraider6542
      @silthstraider6542 12 วันที่ผ่านมา +1

      @@dupdrop 😁

    • @thelearningmachine_
      @thelearningmachine_ 12 วันที่ผ่านมา

      Flask is synchronous, it can only process 1 request per turn, until accepts the next one. FastAPI humiliate Flask in a racing of snails :D

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +8

      noted! I'll do it in the near future

    • @MrVajcakaty
      @MrVajcakaty 12 วันที่ผ่านมา +1

      @@thelearningmachine_ Not true, wrap/place gunicorn in front of Flask and it will dominate.

  • @likwidsage
    @likwidsage 12 วันที่ผ่านมา +40

    Great test but nothing surprising. Go is known to walk that line between ease of use and performance. Python more towards ease of use, with less performance. and Rust more towards performance but is harder to use.

    • @AntowaKartowa
      @AntowaKartowa 12 วันที่ผ่านมา

      On a course about algorithms lecturer was writing code mainly on Java, but also shows examples on Python and JavaScript. Java has showed much bigger performance than Python in every test, so I concluded that Python is relatively slow language.
      Recently I've read that Go is very lightweight and fast and that's why it is widely used in microservices.
      It made the wrong perception that Python should be slower than Go.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +9

      the question wasn’t whether Python is slower, but by how much it is slower 😊

    • @everyhandletaken
      @everyhandletaken 12 วันที่ผ่านมา +5

      For sure, but the best part about Go is that it is only marginally more complex than Python, yet much better performance

    • @haploid2k
      @haploid2k 12 วันที่ผ่านมา +3

      There is nothing "easy" about Python. If you hate yourself that much, by all means, use a language where whitespace is syntax. But if you value your sanity, choose something less schizophrenic, with proper block definition syntax and a static type checker.

    • @SAsquirtle
      @SAsquirtle 11 วันที่ผ่านมา

      @@haploid2k pathetic skill issue, use an IDE and type hints with mypy + ruff

  • @mfc1190
    @mfc1190 12 วันที่ผ่านมา +12

    Awesome video - quick nit: in the CPU Throttling, you have zig instead of go. This was really insightful!

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +2

      thanks, it just a label from the previous benchmark it is actually golang

    • @mfc1190
      @mfc1190 12 วันที่ผ่านมา

      @@AntonPutra yeah no worries, just figured I would give you a heads up if this is attached to a repo

  • @dragonvslvr
    @dragonvslvr 12 วันที่ผ่านมา +15

    Very cool! I recently converted a python pipeline to rust and was shocked by the performance improvements 40s -> sub 1second. If you want I might be able to help convert this to something like fastapi since it’s very popular. Might be beneficial for everyone to see

    • @artemxyi
      @artemxyi 12 วันที่ผ่านมา +1

      Create the fastest python framework?

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thanks!

  • @hdeolivera
    @hdeolivera 12 วันที่ผ่านมา +48

    Great work! Bun vs Go, please 🙏

    • @PanicAtProduction
      @PanicAtProduction 12 วันที่ผ่านมา +4

      Yes. This please

    • @Serizon_
      @Serizon_ 12 วันที่ผ่านมา +1

      @@PanicAtProduction Bun will lose if I remember correctly , by watching a video of some guy who converted his code from bun next to golang for static pages I guess
      I am also interested in this though since bun actually has bs benchmarks on its website (its comparing 17x faster for react , for a simple hello world which is pretty stupid imo)
      I would like to see some practical examples like how Anton does
      Please anton , lets see bun vs golang.

    • @papa_ethan
      @papa_ethan 12 วันที่ผ่านมา

      @@Serizon_ Nothing could match go other than C/C++/Rust/Zed/Object-C even C#.Net and Java will lose

    • @jlucaso
      @jlucaso 12 วันที่ผ่านมา +6

      Up. bun (bun.serve) bun (elysia)

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +3

      ok!

  • @УважаемыйЧеловек-л4с
    @УважаемыйЧеловек-л4с 12 วันที่ผ่านมา +11

    Every Django task is blocking, so there is big latency when working with multiple users. There is obvious optimizations for Django app - use async views, async calls to dbs, async middleware + some asgi server (like uvicorn). For further improvement you can use C-written "NGINX Unit" as WSGI/ASGI server instead of Python-written Gunicorn/Uvicorn.
    And looks like there is unnecessary middlewares, too.
    I hope someone else can make pull request because I used Django only a couple of times (not a big expert, esp. talking about performance)
    Would like to see FastAPI vs Django vs Go stdlib vs some js backend (maybe both Node and Bun) in the next video.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +2

      thanks! i'll try async views in the future

    • @Vismund2
      @Vismund2 12 วันที่ผ่านมา

      @@AntonPutra Configuring gunicorn to use gevent workers should be quicker to set up. But I'd still be very interested in comparing it with actual async python functions.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      @@Vismund2 no, i'll try async

    • @shulehr
      @shulehr วันที่ผ่านมา

      @@AntonPutra i cant wait to see that one :)

  • @christiangualteros36
    @christiangualteros36 12 วันที่ผ่านมา +1

    Thank you. Great job. These benchmarks are so good and a great idea for the people who work in production.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thanks!!

  • @abdussametkaci5795
    @abdussametkaci5795 12 วันที่ผ่านมา +7

    Nice content, please Spring Boot (Native) vs Go 🙏

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +5

      thanks, will do soon!

  • @Thassalocracy
    @Thassalocracy 12 วันที่ผ่านมา +1

    I find yr videos really insightful. U are probably the only person and channel that really demonstrates that the choice of programming language is a very important factor in software/web development. Many people are guilty of burying this in the hopes that their favorite stack will not be exposed for the CPU vampires that they are.
    At this point it seems that Go is the fastest GCPL for pretty much anything memory safe while Rust is the fastest non-GCPL for the same. 😅

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      Well, I'm a DevOps engineer, not a programmer, so I don't have any bias😊

  • @mr.nobody4494
    @mr.nobody4494 12 วันที่ผ่านมา +12

    ☝ Please, C# with .NET 8 vs (Python with FastAPI and PHP with Laravel), all of these using PostgreSQL. Thanks in advance! 🙌

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +7

      ok, i'll come back to c# and .net soon

  • @099watcher
    @099watcher 10 วันที่ผ่านมา +2

    Thank you, I was really looking forward to this.

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา +1

      my pleasure

  • @viniciusmorgado9722
    @viniciusmorgado9722 12 วันที่ผ่านมา +3

    Very good video as always.
    But I think that results are expected, will be interesting compare between Python frameworks popular for backend: Django Rest Framework, FastAPI and Flask.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      Thanks, yes, but I didn't think that it could only process 2.5k requests.

  • @muharief3885
    @muharief3885 12 วันที่ผ่านมา +6

    Django is a framework, and you've compared with stdlib non framework compiled go? what a on fair comparison. It was apple and orange.
    When go is async from the start, that huge django is threaded sync framework dude.
    Whats the point comparing compiled language to interpreted language when simple hello world is enough to justify compiled lang supremacy.
    The closest thing you can do is comparing go with python fastapi/falcon + pypy which is far superior to django in term of performance.
    Django is big because you have everything included to develop fast business application.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +3

      I know, I have a lot of experience running Django in production at my company. I know it's slow, but I've received several requests to demonstrate just how slow it is.

    • @plathardstuck28
      @plathardstuck28 11 วันที่ผ่านมา +1

      @@AntonPutra now you need to demostrate how slow you will write in Go all built-in systems, that django has out-of-box. Templating, translation, timezones, auth, sessions, ORM (with very complicated queries support), CORS middleware, clickjacking middleware, password hashing... list goes on. Plus there are TONS of working solutions, that you can use for your applications in notime (DRF, Djoser, Django-model-translation etc.). It is slow. But not "just slow for nothing" - that bunch of tools comes at price.

  • @Jonathanlouisa
    @Jonathanlouisa 12 วันที่ผ่านมา +13

    php/Laravel vs Bun vs Python pls

    • @Dipj01
      @Dipj01 12 วันที่ผ่านมา +1

      Yeah +1 for laravel

    • @ORiastanjung
      @ORiastanjung 12 วันที่ผ่านมา +1

      yep im curious on these laravel/php also

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      ok, soon!

  • @nightmarenova6748
    @nightmarenova6748 12 วันที่ผ่านมา +1

    This is so interesting! As someone who likes to self-host stuff i have an instance of Authentik(an Auth provider for your self-hosted services made largely with Python and Typescript ) where for all its services like the agent and the service itself it consumes around 1 to 1.2gb of ram! Which is quite insane . As soon as i saw the graphs in this video it reminded me of Authentik!
    Thanks for yet another amazing video btw! Keep up the great work!

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      haha, thanks!

  • @adrianbool4568
    @adrianbool4568 11 วันที่ผ่านมา +3

    On your question about why is Python transmitting so much more data across the network. I suspect that is due to Gunicon not supporting HTTP KeepAlive on sync requests and therefore you're seeing the TCP setup & close traffic for each any every request to the Python server. Go's ServeMux does seem to support HTTP Keepalive; hence its comparitively lower traffic levels. I guess an async Django instance, supporting HTTP KeepAlive, would be interesting - if possible!

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      Thanks! I'll look into HTTP KeepAlive and try async implementation as well

  • @antonmarini3662
    @antonmarini3662 12 วันที่ผ่านมา +3

    A few questions which might help with Python performance that I didn't see addressed
    * what version of python are you using?
    * can you test with async views in Django?
    I'd never expect python to be nearly as performant but im curious if the latest GIL updates in 3.11, 3.12 and 3.13 along with Django's Async views help with the dismal performance?
    Thanks from a fellow Anton :)

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      Thanks! :) I'm using 3.12.6 - github.com/antonputra/tutorials/blob/main/lessons/209/mydjango/Dockerfile#L12C13-L12C19
      I'll try async views next time

  • @MD.NazrulIslamKhan-b8j
    @MD.NazrulIslamKhan-b8j 11 วันที่ผ่านมา +2

    @AntonPutra Please add `blacksheep` python framework in your next test which is well known for it's performance

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      sure, i'll take a look

  • @mirkamolmirobidov1991
    @mirkamolmirobidov1991 12 วันที่ผ่านมา +1

    Awesome test format. I want to see c++ userver vs rust benchmark it will be interesting to see cpu and ram usage also latency

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      thank you! yes i'll do cpp soon

  • @CuteseGamer
    @CuteseGamer 8 วันที่ผ่านมา +3

    You can write django app in days instead of months for the go version. Just start the MVP with django, it scales horizontally well and add some go stuffs if your app becomes really successful. Otherwise it will sit on your $5 vm processing 10 request per day which comes from yourelf. Good bye

  • @brandonkauffman7256
    @brandonkauffman7256 12 วันที่ผ่านมา +5

    Looks like Go's postgres connection limit is reached with 4 connections causing the timeouts.

    • @brandonkauffman7256
      @brandonkauffman7256 12 วันที่ผ่านมา +4

      I made a PR to allow a higher max connection limit

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      thank you! merged and i'll be using the same 20 for other languages as well

  • @mallickpriyanshu
    @mallickpriyanshu 8 วันที่ผ่านมา +2

    Would love to see a Nodejs (Express) vs Python (FastAPI)

    • @AntonPutra
      @AntonPutra  8 วันที่ผ่านมา

      ok noted!

  • @MrQsam
    @MrQsam 12 วันที่ผ่านมา +1

    Pretty useful stuff, as always. I would love to see a comparison between Python FastAPI and frameworks from other languages.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      thank you, will do fastapi soon

  • @andresaguilar3055
    @andresaguilar3055 12 วันที่ผ่านมา

    Hey, I’ve been watching your videos for a while now. I really appreciate this kind of content. Especially for a person obsessed with perfomance like me.
    I would really like to see a comparison between databases perfomance. Especially postgresql vs mysql. Thank you btw.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      Thank you! I’ve been thinking about those two for a while. I'll get to them soon.

  • @billn98
    @billn98 11 วันที่ผ่านมา +1

    Nice video 👍. Can you do Dart vs Go next (Serverpod vs Gin, or both stdlib)?

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      will do soon

  • @chu121su12
    @chu121su12 12 วันที่ผ่านมา +4

    👋 requesting similar benchmark for java (especially with v22 vs v23 which had new gc) vs go/rust. thanks in advance

    • @galiKZ0
      @galiKZ0 12 วันที่ผ่านมา

      Yes! Should be interesting!

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +2

      noted! i'll come back to java and c# soon

  • @jimzordstam6338
    @jimzordstam6338 11 วันที่ผ่านมา

    Amazing and professional video as always, I actually requested this one in the previous (Rust vs Zig) so a million thanks!
    Personally, I used Bun.js + Elysia a week ago and had a great DX. So having a Benchmark that answers which JS web framework is the fastest would be awesome. For Node.js I would choose the Hyper express or Hono, Elysia for Bun and I have no clue about deno.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      Thank you! I’m actually planning to do Node next

  • @ORiastanjung
    @ORiastanjung 12 วันที่ผ่านมา +1

    Love the way you explain it dude, it really tell us many information from it.
    I really curious on Laravel PHP vs NodeJS
    Would you mind try it also? since those three were very popular in my city currently

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      thank you! yes node is the next

  • @musashigarami
    @musashigarami 10 วันที่ผ่านมา +1

    I'm scared to see node js next XD, node js vs Go would be a good one.

  • @tacorevenge87
    @tacorevenge87 12 วันที่ผ่านมา +1

    Wow man love your videos

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      thank you!

  • @hectors.1644
    @hectors.1644 12 วันที่ผ่านมา +1

    great content, Nice thumb by the way!

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thank you!

  • @mukundjajadiya
    @mukundjajadiya 12 วันที่ผ่านมา +2

    In cpu throtling graph you forgot to rename as go it's show zig from previous test. Just try to grabe your attention 😊

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      haha, i know

  • @mukundjajadiya
    @mukundjajadiya 12 วันที่ผ่านมา +2

    Hi,
    When you will bring bun vs nodejs in typescript. Excited to watch it

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      node vs go next, then all bun

  • @FAELP22
    @FAELP22 11 วันที่ผ่านมา +2

    Very good, thank you. Could you teach me how to configure Prometheus and Grana in the EKS cluster? And how to create this dashboard?

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +2

      sure i'll come up with some new tutorials how to

  • @RobertoMaurizzi
    @RobertoMaurizzi 8 วันที่ผ่านมา

    If I understand correctly, Go does automatic parallel scheduling of the code that manages the requests.
    In Django you should use async view functions and run using the asgi interface provided by Channels.
    It'll still be way slower, but better than what you got. Also, you should run it using an application server like uwsgi (I can't see how you ran it, I'm on a phone and it's too small/fast 😅)

    • @RobertoMaurizzi
      @RobertoMaurizzi 8 วันที่ผ่านมา

      ... and youtube won't allow me to comment about how to use uvicorn to run the project using async... It's in the official docs 🙂
      I'm curios to see how much things change with async views.

  • @Fenospro
    @Fenospro 12 วันที่ผ่านมา +2

    I would like to see one with NodeJs fastify vs Golang

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      node is next

  • @f4z0
    @f4z0 10 วันที่ผ่านมา

    I'd really like to see how FastAPI behaves

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      ok i'll do FastAPI soon

  • @VinayGoudtallapalli
    @VinayGoudtallapalli 12 วันที่ผ่านมา +10

    Whoa..Not even a competition from Go's side

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      well, I need a rate-limiting library to avoid oomkills

    • @MMEEEish
      @MMEEEish 12 วันที่ผ่านมา

      The problem is in Django, and not Python. fastapi or sanic will show way better results @AntonPutra

  • @aaliboyev
    @aaliboyev 11 วันที่ผ่านมา +1

    You made me think on switching to go api backend

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      no so fast, i want to try async views as well, they say it's much faster

  • @HarshRanjan-z4b
    @HarshRanjan-z4b 11 วันที่ผ่านมา

    Could you do some kind of benchmark on number of active connections and how well actix-web handles it as compared to something in erlang? I would love to see why WhatsApp decided to go with erlang (even though Rust probably wasn't too mature/did not exist?) over the more mainstream tools, maybe even C++. C++ also has a relatively less known web framework in the form of drogon.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      Yes, I keep optimizing the DB setup. I’ve now set the pool to 20 connections and some timeouts, but scaling the connection pool is usually handled by the library itself. I have metrics from the database to visualize them in Grafana.

  • @ooguro8513
    @ooguro8513 12 วันที่ผ่านมา +1

    The comparison is not valid. Django has a significant number of default middleware, which means that the request must go through several processes before reaching the view function.

    • @ooguro8513
      @ooguro8513 12 วันที่ผ่านมา

      One thing to keep in mind is that it is not appropriate to compare programming languages or frameworks directly, as each has its own advantages and disadvantages.

    • @ooguro8513
      @ooguro8513 12 วันที่ผ่านมา

      The success of a project does not solely depend on the tools used, but rather on the intellectual capabilities and expertise of the individuals involved.

    • @ooguro8513
      @ooguro8513 12 วันที่ผ่านมา

      For instance, Instagram was developed using Python Django.
      Do you believe it is slow?
      Of course not, correct?

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      At my company, we've been running Django in production for at least 4 years. Yes, it's a totally production-ready framework, but it's just slow. I have a lot of experience running Django in production under heavy load :)

  • @sanchitwadehra
    @sanchitwadehra 8 วันที่ผ่านมา +1

    Dhanyavad

    • @AntonPutra
      @AntonPutra  8 วันที่ผ่านมา

      my pleasure!

  • @lastink444
    @lastink444 12 วันที่ผ่านมา +1

    such a nice series

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thank you!

  • @dmitrydudalov8886
    @dmitrydudalov8886 11 วันที่ผ่านมา +2

    try pypy interprieter. i had dramatical improve performance just change and have JIT

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      thanks! i'll try

  • @DavidSmith-ef4eh
    @DavidSmith-ef4eh 12 วันที่ผ่านมา +18

    doesn't sound like a fair benchmark. it's like a race between Hussain Bolt and Joe Biden.

    • @nanonkay5669
      @nanonkay5669 12 วันที่ผ่านมา +1

      What's not fair about the comparison? How he conducted it or the languages used?

    • @DavidSmith-ef4eh
      @DavidSmith-ef4eh 12 วันที่ผ่านมา

      @@nanonkay5669 python is know to be one of the slowest languages, while go is on top of all benchmarsk... it's too much of a gap to even compare them.

    • @nanonkay5669
      @nanonkay5669 12 วันที่ผ่านมา +5

      @@DavidSmith-ef4eh people understand that and we all heard it, but some want to see it and also quantified. It doesn't make the benchmarking unfair

    • @statuschannel8572
      @statuschannel8572 12 วันที่ผ่านมา +4

      @@DavidSmith-ef4eh you'd be suprised how many people believe Python is faster than others. A solution architect even told me python is faster than what he uses everyday( C# )

    • @roccociccone597
      @roccociccone597 12 วันที่ผ่านมา

      @@DavidSmith-ef4eh lots of people use Django and Python for server side code.

  • @Mr.BinarySniper
    @Mr.BinarySniper 12 วันที่ผ่านมา +10

    Please, we want a test between javascript runtimes. Bun vs Nodejs vs Deno. Please please.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +4

      yes, next node vs go, right after i'll test these three i promise

    • @DavidSmith-ef4eh
      @DavidSmith-ef4eh 12 วันที่ผ่านมา

      I assume bun has a small edge over node and node has a small edge over deno. deno being the slowest of them all, but not by mutch. maybe 5% slower than bun.

    • @Mr.BinarySniper
      @Mr.BinarySniper 12 วันที่ผ่านมา

      @@DavidSmith-ef4eh yeah. thats all we wanted to see.

    • @ashwinsnmv
      @ashwinsnmv 11 วันที่ผ่านมา +1

      ​@@DavidSmith-ef4ehactually node is slower than Deno in many benchmarks. Bun is fastest because it uses c based library with js bindings.

    • @musashigarami
      @musashigarami 10 วันที่ผ่านมา

      @@AntonPutra This is awesome! Thanks

  • @alexreustle
    @alexreustle 12 วันที่ผ่านมา +1

    I’d like to see a benchmark test of c++ Drogon framework vs similar competitors, like actix in rust

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      will do!

    • @alexreustle
      @alexreustle 12 วันที่ผ่านมา

      @@AntonPutra you’re very kind. Thank you

  • @zakimimit
    @zakimimit 8 วันที่ผ่านมา

    Can we see:
    -Django DRF vs Django ninja
    -Django with celery Vs nodjs or Go
    This will be fair comparison
    Thank you for the content

  • @s1v7
    @s1v7 9 วันที่ผ่านมา +1

    It’s such ironic that Python is used in some of the most computationally demanding areas.

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      thinking about comparing big data apis for spark/flink: python vs java/scala

  • @thisistotest
    @thisistotest 12 วันที่ผ่านมา +6

    Sir, C++ vs RUST please.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      ok, soon!

  • @fojico1234
    @fojico1234 11 วันที่ผ่านมา +1

    Django Vs stdlib!!!!. Pick a lightweight library Vs another lightweight please

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      sure, someone just asked me to compare django so i did

  • @friedrichdergroe9664
    @friedrichdergroe9664 12 วันที่ผ่านมา

    I would love to see this benchmark between Go and Elixir. They are more similar as both are designed to handle high concurrency.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      ok, noted!

  • @pkucmus
    @pkucmus 10 วันที่ผ่านมา

    Hi, first time here, I would love to learn how to make such benchmarks. Would also like to see something more modern for Python like FastAPI or Starlette (ASGI) VS Fastify TypeScript

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา +1

      Ok, noted! I'll make some tutorials on monitoring in the near future as well

  • @vlatterran
    @vlatterran 4 วันที่ผ่านมา +1

    Need some go vs nim benchmarks

  • @reiuji_utsuho
    @reiuji_utsuho 12 วันที่ผ่านมา +1

    Python has always been great for prototyping and scripting. But as always, once you get to the point where you need serious performance it's best to rewrite in some other language.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      Some large companies are still using Django in production because it's very hard for them to migrate, lots of features

  • @farhanaliqureshi3908
    @farhanaliqureshi3908 11 วันที่ผ่านมา

    There is no comparison. It looks like Python tanked both tests. In Test-1, Go was handling ~60k req/s while Python was handling ~2k req/s. For a fair comparison, both should be serving similar number of requests per second. In Test-2, Python app just crashed under load.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      yes, i'll try async views next time

  • @martinhotmann7868
    @martinhotmann7868 12 วันที่ผ่านมา +1

    At "CPU Throtteling" you mislabled the blue line as "Zig" instead of "Go" ;)

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      yes, it is from the previous benchmark a ran, it just copy paste :)

  • @soubinan
    @soubinan 12 วันที่ผ่านมา

    Thanks for this benchmark
    Would be good to have go vs python but with fastapi and robyn (python flask like but based on rust)

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      ok, next time i'll use async functions in python, should be faster

  • @iulikdev
    @iulikdev 12 วันที่ผ่านมา +3

    Please test elixir/phoenix to debunk the greatest elixir! 🤣

    • @infantfrontender6131
      @infantfrontender6131 12 วันที่ผ่านมา +1

      Debunk? Elixir is not faster than Go. It may be quicker than Python, but it depends
      The question is how to compare Elixir with their own fault-tolerance system. Do we need to use Docker with Elixir or not? Elixir has self-healing at the code level, and Docker can add it at the cluster

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      sure, will do it soon

  • @thewalkthroughmaking
    @thewalkthroughmaking 12 วันที่ผ่านมา

    Hey! Love your videos! Can you do an updated comparission between Istio and Linkerd2? But now using Istio's ambient mode (as oposed to their traditional sidecar mode) They claim that is much less resourse intensive, easier to manage and production ready

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      Yes, but probably Istio (sidecarless) with Cilium.

  • @rankala
    @rankala 12 วันที่ผ่านมา

    NestJS and some other Node.js based frameworks would be interesting

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      ok, i'll do node/express next then other js frameworks

    • @rankala
      @rankala 11 วันที่ผ่านมา

      @@AntonPutra nice, just keep in mind, nestjs sits ontop of express.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      @@rankala Yes, I saw that it has a couple more thousand stars on GitHub.

  • @AGAU1022
    @AGAU1022 12 วันที่ผ่านมา

    Thanks for these. I would love to see Elysia vs Fresh (Deno)

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      no problem, will test Elysia soon

  • @AlexanderBorshak
    @AlexanderBorshak 12 วันที่ผ่านมา +1

    Like for the video; but what do these huge logos of Python and Go mean? It would be better to have a legend, that shows which color belongs to which language.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      I have it in the actual test, you can skip it and have a timestamp in the description.

    • @AlexanderBorshak
      @AlexanderBorshak 12 วันที่ผ่านมา

      ​@@AntonPutra I saw that later in the video, thank you. But still wanders - what do the huge logos of Python on the left side and Go on the right side on the charts mean?..

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      @@AlexanderBorshak nothing really, i don't have a good explanation :)

  • @LinuxGamerYT
    @LinuxGamerYT 10 วันที่ผ่านมา +1

    Could you test the Emmette framework in Python? It is written in Rust and uses asynchronous Python.

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      ok, just added to my list

  • @LiveType
    @LiveType 12 วันที่ผ่านมา

    "Simple" improvement for the django app I saw is to switch to async everything. This does increase the complexity of the project (and debugging) but should increase throughput a meaningful amount.
    For the go db connection, I did see that the maxConnections was increased to 20 so I suppose that's a fair place to start. I would say increase both the python and go to the max allowed of 100 connections for a saturation test.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      thanks, i'll try async views next time and set poll connections to 20 for both

  • @gibzrival1565
    @gibzrival1565 12 วันที่ผ่านมา +2

    This was a loosing battle, -I bet rust vs python would be a bloodbath😅

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      maybe fastapi, will see :)

  • @HaydonRyan
    @HaydonRyan 12 วันที่ผ่านมา +1

    And there we go kids, don’t write web or system apps in python. Go isn’t that much harder, and a 10x better language.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      in terms of performance 100%

    • @HaydonRyan
      @HaydonRyan 11 วันที่ผ่านมา

      ​@@AntonPutra In terms of performance, environment (managing python dependencies really sucks without containerization), weekly typed vs strongly typed ( python doesn't' have strongly typed variables).
      You can probably sense I'm very anti python is the answer to everything... It has it's place, scripting and AI experimentation.

  • @erlanggafauzanrezaganie9595
    @erlanggafauzanrezaganie9595 7 วันที่ผ่านมา

    i really like your content, but can you try modify the django to use uvicorn instead ? i'd like to see how much the different

  • @j-p-d-e-v
    @j-p-d-e-v 12 วันที่ผ่านมา

    Great content!
    This is one of the reason Im refactoring from python(django) to rust(actix) in one of my apps at work. And uwsgi is a nightmare to configure. Though Django is still my goto web framework for doing MVP apps.

    • @antonmarini3662
      @antonmarini3662 12 วันที่ผ่านมา

      I'd be curious how much of the Django ecosystem has equivalent plugins on other platforms. Part of the draw of Django is how full featured the ecosystem is.

    • @j-p-d-e-v
      @j-p-d-e-v 12 วันที่ผ่านมา

      ​@@antonmarini3662 Agree with this, actually in my case I build it from scratch or use a similar library then just add those missing features.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      It's easy to develop with, but hard to migrate from. We've been running Django for multiple years already, and they just keep adding more features.

  • @ac130kz
    @ac130kz 12 วันที่ผ่านมา +2

    even proper json serialization with orjson won't help django, it's just too slow

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      what about async views? have you tried it?

    • @ac130kz
      @ac130kz 12 วันที่ผ่านมา

      @@AntonPutra it's sill not a big improvement, and Django is still deeply synchronous. Some folks rewrote ORM's object property resolution in Rust, which made a ton of improvement for big objects

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      @@ac130kz ok

  • @earnstein7607
    @earnstein7607 12 วันที่ผ่านมา +1

    There's no python framework that would beat go

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      well, if python gets closer to what Go can do, that would be good enough

  • @yungouda
    @yungouda 10 วันที่ผ่านมา +1

    P99 is a bad metric here since it will lead you to strange conclusions due to GC
    Use p90

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      agreed, i'm already switching to p90 in the new benchmarks

  • @ArturDani
    @ArturDani 12 วันที่ผ่านมา

    Nice work as always.
    Could you please do Laravel vs Express vs Django?

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thanks! i'll do express next

  • @BarakaAndrew
    @BarakaAndrew 12 วันที่ผ่านมา +1

    its not even close, people shouldn't be using python for API stuff, just do ur own data science or call C APIs for AI.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      i want to test spark python vs java api now :)

  • @ionutale1950
    @ionutale1950 12 วันที่ผ่านมา +1

    That Python memory usage, may not be correct.
    Garbage collected memory, should have spikes

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      I have a few metrics for memory, but this metric in the graph is actually used to OOM kill the pod by k8s.

    • @broccoli-dev
      @broccoli-dev 12 วันที่ผ่านมา +1

      Python uses reference counting primarily. So memory is freed as soon as it's no longer used versus at some later time, excepting cyclic references.

    • @ionutale1950
      @ionutale1950 12 วันที่ผ่านมา

      It makes sense

  • @CuteseGamer
    @CuteseGamer 8 วันที่ผ่านมา

    Database will always be the slowest part in your stack!

  • @miguelalzate4850
    @miguelalzate4850 12 วันที่ผ่านมา +1

    I would like to see go vs node.js😁

  • @SaifurRahmanAkash
    @SaifurRahmanAkash 11 วันที่ผ่านมา +1

    want Node vs Bun vs Deno

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      very very soon!

  • @ThePandaGuitar
    @ThePandaGuitar 12 วันที่ผ่านมา +1

    Laravel and Go please 🙏

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      ok noted! will do soon!

  • @SAsquirtle
    @SAsquirtle 11 วันที่ผ่านมา

    please do one with FastAPI with purely async routes (async route function + async function calls inside or run_in_threadpool for sync functions)

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      ok will do

  • @ryn__bsd
    @ryn__bsd 12 วันที่ผ่านมา +1

    Next flask vs expressjs

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      thanks, almost! :)
      express vs go, then other js frameworks but I'll flask soon as well

  • @elalemanpaisa
    @elalemanpaisa 12 วันที่ผ่านมา

    Next Go vs JS Express (or whatever would be the smallest usable JS framework) please

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      yes, express is next

    • @elalemanpaisa
      @elalemanpaisa 11 วันที่ผ่านมา

      @@AntonPutra thanks man! You really do the work for my project haha

  • @YabseraPython
    @YabseraPython 11 วันที่ผ่านมา +1

    Next elixir vs golang ?

    • @AntonPutra
      @AntonPutra  9 วันที่ผ่านมา

      soon, i promise 😊

  • @ZodakZach
    @ZodakZach 12 วันที่ผ่านมา +1

    so now that u can make websites with just go stdlib i wonder if there are any differences in performance when using something like echo

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      I haven't tested Echo yet, but those web frameworks have useful middleware, logging, rate limiting, etc.

  • @abdulawal604
    @abdulawal604 11 วันที่ผ่านมา +1

    Why not MySQL vs PgSql vs Sqlite(WAL mode)

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      yes i was thinking about db comparisons, i may do them in near future as well kafka vs rabbit etc

  • @salim444
    @salim444 12 วันที่ผ่านมา

    this is a great series. Can you try go gnat and zig zzz libraries?

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      ok noted!

  • @R_Y_Z_E_N
    @R_Y_Z_E_N 12 วันที่ผ่านมา

    The rust war - Actix vs Rocket vs Axum

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      i have it already

  • @slavapol-v1553
    @slavapol-v1553 12 วันที่ผ่านมา +1

    Go vs Elixir, please

  • @Flipidiflop
    @Flipidiflop 12 วันที่ผ่านมา +1

    I don't understand the caching that happens for go
    How it is setup? Is it a default behavior? Like why is it doing it just when cpu is a 100%?

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      Yes, since I use the standard library, it doesn't have any rate-limiting capabilities, so it accepts each request. Eventually, all those requests fill up the memory, and it crashes. That's why you might choose a framework or at least implement it yourself.

  • @AGAU1022
    @AGAU1022 9 วันที่ผ่านมา

    Could you add some measure of cold start performance? Or did I miss it?

  • @PabloMessier
    @PabloMessier 6 วันที่ผ่านมา

    A lot of people have to much time on their hands, it's obvious that the person making this video is just a hobbyist. No IT professional has the time for this BS you just use the right tool for the job.

    • @AntonPutra
      @AntonPutra  3 วันที่ผ่านมา +1

      to find the right tool, you need to test it, don’t you? or do you just believe everything you see on the internet?

  • @weiSane
    @weiSane 12 วันที่ผ่านมา +2

    Why is the CPU throttling graph showing python zig yet the test is for python and Go. I think you forgot to change that before deploying.

    • @exapsy
      @exapsy 12 วันที่ผ่านมา

      He noticed, he even put a small text at one timestamp. He likely just forgot to change the label.

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thanks, it just copy paste mistake from the previous benchmark

  • @liorbm5779
    @liorbm5779 11 วันที่ผ่านมา

    Does the GO framework, offer as much as Django offer?
    Also, GO is compiled and it's a language, Django is a framework of interperter language.
    If python will have compiler the differences will be small.
    Not a good comparison, sorry.

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +2

      I know, I just received multiple requests to compare Django, and I personally have a lot of experience running Django in production at my company. It is slow but hard to migrate from.

    • @liorbm5779
      @liorbm5779 11 วันที่ผ่านมา

      @@AntonPutra
      Honestly, I will compare apple to apple.
      Let's say Express(or similar) to FastAPI (with and without some JIT for python)
      Anyway, thanks for your effort 😊

  • @johnballesteros8956
    @johnballesteros8956 12 วันที่ผ่านมา

    Go vs Django vs NextJS please!

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      ok, noted! express next, then other js frameworks :)

  • @Alex-uf4eo
    @Alex-uf4eo 12 วันที่ผ่านมา

    FastAPI vs Ruby on rails!

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา +1

      ok, noted 😊

  • @kinggrey2511
    @kinggrey2511 11 วันที่ผ่านมา

    Edit: i saw your channel
    Why python try java , now that you mention it I really wanna know iam curious

    • @AntonPutra
      @AntonPutra  11 วันที่ผ่านมา

      will do

  • @muray82
    @muray82 8 วันที่ผ่านมา

    You should compare python to C# If I'm not mistaken the results are almost same?

  • @AchwaqKhalid
    @AchwaqKhalid 12 วันที่ผ่านมา +5

    *Next:* HTML 🆚 Rust
    🤓

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา +1

      haha