Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
togototo.wordpress.com
Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
1–10 of 58 posts
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#2Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#3Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#4Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Edit: Also, how is this relevant for anything other than Scala specifically? It seems odd for C and Go to end up on one side and C++, Rust, D and Nimrod to be on the other side, if memory consumption is a big concern.
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#5Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Is this actually true on a marginal basis, especially in comparison to Go? My understanding was that JVM languages have a larger constant upfront memory footprint, but the difference isn't necessarily an increasing function of workload (perhaps of program size). Edit: Also, how is this relevant for anything other than Scala specifically? It seems odd for C and Go to end up on one side and C++, Rust, D and Nimrod to b…
For many applications this doesn't matter, especially with how cheap RAM is. But for some applications, such as mobile games and rented server space where your profitability is a function involving RAM cost per user, this can be very significant.
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#6Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#7Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#8Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Re: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#9Cool article! One thing that might be important to people if you're looking at these languages besides just speed: Go and C will tend to have radically lower memory usage (often like 10x) than most of the other languages there, such as Scala. This can be very important depending on what your application is. For me, using Go for game world servers was my choice because I can do so much more simulation per dollar of se…
Although it wouldn't really be relevant for the level generation we're doing unless the memory usage was outrageous, I'm open to including memory usage in the table for comprehensiveness's sake. What would you say is the best way to measure ram usage on Linux; is there something as simple as 'time ./ThisExecutable' is for measuring time?
$ command time -f 'max resident:\t%M KiB' ls /
bin etc initrd.img.old lib32 media proc sbin tmp vmlinuz
boot home iso lib64 mnt root srv usr vmlinuz.old
dev initrd.img lib lost+found opt run sys var
max resident: 968 KiBRe: Parallel Roguelike Lev-Gen Benchmarks: Rust, Go, D, Scala and Nimrod
#10Earlier quoted context omitted.
Is this actually true on a marginal basis, especially in comparison to Go? My understanding was that JVM languages have a larger constant upfront memory footprint, but the difference isn't necessarily an increasing function of workload (perhaps of program size). Edit: Also, how is this relevant for anything other than Scala specifically? It seems odd for C and Go to end up on one side and C++, Rust, D and Nimrod to b…
Generally, yes. Try some examples to see. I've done a lot of comparisons of game world simulators written in Go and Scala, accomplishing similar things with radically different memory footprints. I think the difference has to do with the fact that everything you do in Scala produces tons of little objects for anonymous functions and loop iterators and so on. For many applications this doesn't matter, especially with…
That said, you can lower your memory requirements dramatically using pretty standard high performance JVM techniques in Scala much as you can in Java. I've designed server systems in scala that produce no garbage for weeks at a time.
This can be a good option if you have some small subset of your system that needs to be memory sensitive/high performance without having to lose the benefits of the JVM in the rest of the system.