To make it a "fair" fight, I converted the Go and C++ versions to trace "Rust" instead. These are my results on my Macbook Pro:
=== RUST === $ rustc -O bin.rs $ time ./bin > rrays.ppm real 0m14.472s user 0m14.102s sys 0m0.365s === GO === $ go build main.go $ time ./main > grays.ppm real 0m13.928s user 0m13.914s sys 0m0.020s === C++ === $ gcc -O crays.cpp $ time ./a.out > crays.ppm real 0m10.800s user 0m10.794s sys 0m0.005s === RANKINGS === 1) C++ : 10.8s 2) Go : 13.9s 3) Rust : 14.5s On Tue, Sep 24, 2013 at 1:59 PM, Geoffrey Irving <irv...@naml.us> wrote: > It seems like rust would perform better in this benchmark against > languages like Erlang and Haskell, which have even longer names. > > Geoffrey > > On Sep 24, 2013, at 10:08 AM, John Mija <jon...@proinbox.com> wrote: > > > Summary: Rustc 17.7s, Go 13.6s, Clang 11.2s, GCC 10.4s. > > > > Note that the versions in Clang, G++ and Go are rendering the word "Go" > while that the Rust version is rendering a word bigger "Rust" > > > > System: x86_64 GNU/Linux 3.8.0-30-generic > > Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz > > 4 GB RAM > > > > I've used Rust trunk, Go 1.1.2: > > > > $ gcc --version > > gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3 > > > > $ clang --version > > Ubuntu clang version 3.2-1~exp9ubuntu1 (tags/RELEASE_32/final) (based on > LLVM 3.2) > > Target: x86_64-pc-linux-gnu > > Thread model: posix > > > > $ go version > > go version go1.1.2 linux/amd64 > > > > $ rust --version > > rust 0.8 (b6fe27c 2013-09-24 07:06:09 -0700) > > host: x86_64-unknown-linux-gnu > > > > * * * > > > > $ rustc --opt-level=3 raytracer.rs -o rayt-rust > > $ time ./rayt-rust > rayt-rust.ppm > > > > real 0m17.746s > > user 0m17.332s > > sys 0m0.404s > > > > $ go tool 6g raytracer.go && go tool 6l -o rayt-go raytracer.6 && rm > raytracer.6 > > > > $ time ./rayt-go > rayt-go.ppm > > > > real 0m13.664s > > user 0m13.656s > > sys 0m0.008s > > > > $ clang -O3 -lm raytracer.cpp -o rayt-clang > > $ time ./rayt-clang > rayt-clang.ppm > > > > real 0m11.199s > > user 0m11.188s > > sys 0m0.004s > > > > $ g++ -O3 -lm raytracer.cpp -o rayt-g++ > > $ time ./rayt-g++ > rayt-g++.ppm > > > > real 0m10.411s > > user 0m10.404s > > sys 0m0.000s > > > > > > El 24/09/13 14:52, Huon Wilson escribió: > >> On 24/09/13 16:18, John Mija wrote: > >>> Since a post in HN about a raytracer into a business card, a guy built > >>> the implementation in Go: > >>> > >>> https://groups.google.com/forum/#!topic/golang-nuts/mxYzHQSV3rw > >>> > >>> The C++ version: https://gist.github.com/kid0m4n/6680629 > >>> The Go version: https://github.com/kid0m4n/gorays > >>> > >>> Performance (2.2 Ghz Quad Core (2675QM), 16 GB RAM, OX 10.9, Go 1.1.2): > >>> > >>> C++ version: 11.803 s > >>> Go version: 28.883 s > >>> > >>> * * * > >>> It would be interesting if somebody with experience in Rust could > >>> build the version in Rust to compare the speed. > >>> _______________________________________________ > >>> Rust-dev mailing list > >>> Rust-dev@mozilla.org > >>> https://mail.mozilla.org/listinfo/rust-dev > >> > >> I bit: https://github.com/huonw/card-trace > >> > >> Summary: Clang 13.8s, GCC 17.9s, Rustc 17.9s. > >> > >> (1.9GHz 3517U, 8 GB, linux. GCC: 4.8.1, Clang: 3.3, rustc: 18e3bcd > >> 2013-09-23 23:46:05 -0700.) > >> > >> I just did essentially a transliteration of the C++ into (reasonably > >> idiomatic) Rust, I imagine one could make it faster with some effort, > >> but that would be cheating (at least, it would then become a test of > >> *my* micro-optimisation ability, rather than that of the compilers). It > >> appears that clang vectorises/uses SSE directly more eagerly than either > >> gcc or rustc from some quick poking with perf. > >> > >> (I don't have Go on this computer to compare; although I imagine the > >> only comparison of interest would be with gccgo, since "normal" go > >> doesn't optimise anywhere near as much as LLVM does.) > >> > >> Huon > >> _______________________________________________ > >> Rust-dev mailing list > >> Rust-dev@mozilla.org > >> https://mail.mozilla.org/listinfo/rust-dev > >> > >> > > _______________________________________________ > > Rust-dev mailing list > > Rust-dev@mozilla.org > > https://mail.mozilla.org/listinfo/rust-dev > > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev > >
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev