Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Fastest language for iteration and arrays manipulation?
5 points by Fr33maan on Jan 6, 2020 | hide | past | favorite | 11 comments
I currently have a microservice written in js which basically query a redis db and iterate few hundred or thousands times while geting/pushing values from/to arrays in multiple for loops.

It's made to build line of sight of players for a mmo game.

The service run as a loop, ideally at 60FPS (1 iteration = 16ms). More players in the world = more time to iterate.

I have the belief that writing in C++ the same would be faster but: 1. That's a belief, I didn't do any benchmark 2. I don't have the belief that C++ will be the fastest to do it.

What HN does think about that ?



    query a redis db
General rule: if you're looking for "fastest", pulling data over the network is not part of the solution.

As for the choice of language, it's going to be heavily motivated by what languages you (or your team) know how to benchmark and optimize. It doesn't matter if, say, Befunge is the "fastest" if you don't have anybody working on it that can optimize it.


Basically the network query is done before the computing tasks, the network remark is very true. I don't know cpp, only java php and js but I know I need to learn a new one for this task, I'm just wondering which one.


It doesn't have to be fastest, it just has to be faster than what you're using now. C++ compiler has a suite of automatic compiler optimizations that'll make your code performant. Things like loop unrolling, strength reduction, vectorization, cache optimization can make your code many times faster than what you can muster with js.

There's a reason why many AAA titles use C++. No benchmark necessary.


Why I wouldn't need the fastest and only take a faster solution? You are answering to the question of C++ usage but do you know other languages that could do it faster? I know that c++ has dozens of years of optimizations and it is considered as a very powerful and fast language. Is it the best choice I can make? What about c, rust, java, etc...? Will they be slower that cpp?


"Why I wouldn't need the fastest and only take a faster solution?”

Nobody needs “fastest”. “Fast enough” always is sufficient.

Also, I don’t think anybody has the money to pay for ‘fastest’ for any significant algorithm. CPUs are just too complex to be able to categorically claim “this is the fastest possible”.

There likely also is a point where you aren’t willing to pay for ‘yet a bit faster’. You may want to pay $1,000,000 to double your speed, and $10,000,000 to do that again, but at some moment, the price for a 1% speed increase will be too high for you, and that isn’t even the end game, which is “give us loads of money and we’ll see what we can do to get any speed increase”.


Because language choice is more than just about whether it's the fastest for your specific concern at the moment; it may be slow or non-ideal in other situations. C++ in general is pretty fast. I may be biased since I used to write C/C++ optimizations for a living.

I can't speak for other languages; languages with JIT optimizations could in theory be faster than fully optimized C++ code, since it could take advantage of run-time information, such as hot paths and hot fields.

If you care about the fastest performance possible, you're asking the wrong question. I'd benchmark different languages for the specific code I want.


Thanks for the answer, I understand better your point. What I understand from your messages is that C++ should be a good solution.


You should probably identify and quantify the bottlenecks first. My guess is this in an XY problem and you’re IO bound or your architecture is doing something bad like a linear complexity algo calling a linear complexity algo in your iteration, and a 1:1 translation to C++ probably won’t have much benefit.


Actually the IO happen outside of the loops I'm trying to optimize, I shouldn't have mentioned it as they are not part of the problem.


Maybe Fortran?


I was thinking about perfored cards too




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: