4 ms·
From your README.md: > pydis is an experiment to disprove some of the falsehoods about performance and your comment: > The point I am trying to make is that,
by tutfbhuf 6y ago
From your README.md:
> pydis is an experiment to disprove some of the falsehoods about performance
and your comment:
> The point I am trying to make is that, Python with C extensions can be as considerably performant as C code for network or memory bound tasks.
So your point is regarding the falsehood belief that python with heavy use of C extensions is (not) much slower (in this case ~60%) than C? I don't think that such a falsehood belief exists and therefore pydis disproves nothing.
- jnwatson 6y agoYou're missing the point. Obviously, you can write your application in Cython and have decent performance. The entire purpose is to demonstrate that you can build a reasonable performance application built on high performance libraries and stick with idiomatic Python code.
- sushshshsh 6y agoThis, one hundred percent. There's 3 tiers of things happening here. 1) Write Redis in C. Hard for some devs who only know Python, but good performance. 2) Write Redis in Python with C libraries. Doable for a Python dev, performance hit. 3) Write Redis in pure Python. A fun experiment to see the performance limitations of Python when compared to C running on the same machine.
- ZephyrBlu 6y agoThe thing is that the title/project makes you think it's 3), when it's actually 2). It feels a bit sensationalist to me, and I see this all the time with projects these days. It's kind of disappointing.
- UncleMeat 6y agoBut the claim is that he is dispelling common falsehoods. Are there actually people out there saying that python glue with c libraries for performance critical parts is going to be orders of magnitude slower than an entire thing written in c?
- sushshshsh 6y agoI actually don't like Python and much prefer Java, but I think #3 is really only for performance research and like, fun and games. It would be cool to have a quantified answer to "just how slow is Python"? I suspect the answer is many orders of magnitude slower. However, if the experiment in question is, "using python glue code, can a developer string together a service that replicates the functionality of redis", then that illustrates what would actually happen in the real world. For example, for a very junior Python developer, writing something in C is basically like asking a C developer to write assembly- possible, but they'd have to learn a lot of different things to do it. Similarly, when I write Java, I want to be calling Arrays.sort(myarray) instead of writing my own sort (if the focus is on developer convenience and development velocity). So, it's just a difference in what you're desiring to measure.
- tutfbhuf 6y ago> You're missing the point. Well, your claim is that the author has missed the point, because I just quoted the authors point and his intended purpose. So I guess we both agree.
- rualca 6y ago> You're missing the point. Obviously, you can write your application in Cython and have decent performance. "Decent" is a weasel word, which suggests that the performance hit of following this approach is tolerable or acceptable. Sometimes it is, sometimes it isn't. It really depends on where you place the glue code, and where you expect the hot path to be. In the case of a self-described "Redis clone" which ends up being Redis itself glued back together with Python, I'm not sure you can make that case. > The entire purpose is to demonstrate that you can build a reasonable performance application built on high performance libraries and stick with idiomatic Python code. I'm sorry to say but that isn't much of a demonstration. I mean, Python is already widely used as glue code to hold together high performance libraries, and it's already widely known and understood that gluing together code with Python brings in a significant performance hit. And that's ok, because people do it as a tradeoff between performance and some other kind of value-added. But in this case I fail to see what value-added is being proposed, other than the personal portfolio side of things.
- mekoka 6y ago> I don't think that such a falsehood belief exists and therefore pydis disproves nothing. You don't think such a falsehood belief exists, therefore you don't think pydis disproves anything.