2020 study pdf.

After seeing this a couple years ago I started to be more responsible for my PHP code, writing it even with the slightest micro-optimizations possible, since more times people use my code (especially due to nature of PHP being executed in every http request), more energicity they waste because of my lazyness and more they pollute the planet. JIT was NOT included in this experiment, so the number can be much more lower.

I hope you will be responsible for your code so on too (generally I mean people using interpreted languages).

34 points

OK, but are they taking into account the energy expenditure of the programmer’s brain while writing the program? The amount of calories his/her brain has to burn in order to produce & debug the code?

permalink
report
reply
19 points
*
Deleted by creator
permalink
report
reply
6 points

Agree!!!

permalink
report
parent
reply
16 points

Why is there such a large jump from TS to JS?

permalink
report
reply
10 points
*

good question, probably the transpiled code does not match the optimized js. Maybe, if they targeted the same js version as js version they are benchmarking, the results would be equivalent?

Also, if they are using a node version with ts support, it will compile the ts before execution which means they are measuring the impact of the compiler, which can be a lot for small snippets.

permalink
report
parent
reply
14 points

Quite a few unexpected results here…

  1. I’m surprised the C binary is not the smallest, and it’s outdone by Pascal, of all languages.
  2. The speed/energy difference between Java and C# (almost a factor of 2 in favor of Java).
  3. The relatively good performance of JavaScript compared to other loosely typed multi-paradigm scripting languages.
  4. The difference between C# and F#. That’s actually a good reason to question the accuracy of these tests and results.
permalink
report
reply
11 points
*

The JS one is not surprising at all. There’s no other loosely typed multi-paradigm scripting language where such insane shitloads of money and developer time have been spent for optimizing its execution (by some of the largest tech companies). Kinda funny considering that the language design is complete horse shit.

Your 2nd point is really quite surprising. I also wouldn’t have thought that java would beat Go in both energy and time by that margin!

permalink
report
parent
reply
10 points

Without any information how this test result got achieved. It’s kind of useless. It’s like to read the headline of a paper. So sure you should question the accuracy of this image. But i would agree it’s fun to look at it

permalink
report
parent
reply
8 points

But the paper is right there in the post

https://states.github.io/files/j2.pdf

permalink
report
parent
reply
4 points
*

Maybe i was blind, haven’t seen it. Thx, I look into it because i’m curious, but it’s long, so need first some time for it

permalink
report
parent
reply
4 points

Pascal is a simpler and more limited language, so it’s not entirely surprising. It also has less and smaller standard libraries to link in.

As to C# and F#, what’s wrong with the difference? The functional coding style of F# prefers immutable data over possibly mutable ones in C# and that requires more allocations and garbage collection.

permalink
report
parent
reply
1 point

I haven’t looked into the details of the actual code, but I would expect the compiler optimizations and JIT to figure it all out and end up with very similar native code. Especially since both languages are mature and had enough time to reach such goals. But it’s quite possible my assumptions are incorrect.

permalink
report
parent
reply
13 points

Or you could just write your backend in JS and save a lot according to this table.

The big inefficiency of PHP is that every request is handled in a new instance as opposed to one process running the server continuously.

permalink
report
reply
9 points
*

That actually depends on the type of a server.

Common PHP-FPM for example allows for persistent PHP processes to handle multiple requests, reducing the overhead of creating a new instance for each request.

Also then there was no stable JIT while doing this study, so probably situation has changed a lot in a better way, but writing efficient code will always be a requirement.

permalink
report
parent
reply
1 point

That allows processes to be reused but the interpreter must still be set up cleanly each time and torn down. That includes things like open files, database connections and application configurations.

permalink
report
parent
reply
1 point
*

Yes, you are completely right, if your code writing style is basic, all of it being solved by your application design. Not sure for open files (in contrast with disk cache of most OS), we have configurable persistent db connections, app configurations in most cases being saved in some cache (PHPBB cache is an example). Most of the time the code you wrote is the main factor of your code speed and waste coefficient. Luckily every year we get more modern PHP interpreter, if we look back at PHP 5, it was a complete disaster in the terms of performance, but I don’t say that it will be as resource-saving as compiled languages ever (there always will be some cold-start overhead), it’s pretty neat programming language, although I now consider lazy PHP developers as planet’s nature-killers now :D

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 6.9K

    Monthly active users

  • 1.5K

    Posts

  • 34K

    Comments