4 ms·
I don't think the C# time is representative. I suspect Mono is really slow here. I just ran it with VS 2015 in 1 min 24 sec.
by kyberias 7y ago
I don't think the C# time is representative. I suspect Mono is really slow here. I just ran it with VS 2015 in 1 min 24 sec.
- ygra 7y agoFor some workloads Mono seems awfully slow. The compiler I'm maintaining at work takes about twice as long on Mono on Windows and about four times as long as Mono on Linux compared to NET. I guess NET Core would be comparable or faster than .NET Framework and similar on both platforms.
- alkonaut 7y agoThe C# implementation looks flawed (uses reference types for vectors etc). Using value types and .NET Core should give a much better result than that. Will try to remember doing a PR.
- kyberias 7y agoTested this on the same machine with Ubuntu for Windows + old .NET Core 1.0. 3 min 20 seconds.
- ygra 7y agoI've just tried out a bit with .NET Core 2.2. Baseline of the non-multithreaded variant on my machine: 1m56s Making Vector3 a struct: 1m3s Making Vector3 a readonly struct: 1m1s Making Hit and Ray a struct: 1m26s Will test more tomorrow, I guess, but the most obvious change already yields a 2× speedup. This was also without any profiling, so I don't even know what I did there.
- mikece 7y agoIf I'm not mistaken, Miguel himself said that Mono was meant for portability (can run on Linux) and not performance. Would be a far better test to use .NET Core as you could still run this test on Linux or any other place where Core runs.
- mikece 7y agoThe one exception to what I initially wrote is if Mono was used to compile to native binary (which is what Xamarin apps for iOS do: compile to ARM binary). You'll get very different results if you go that route but that's going to require different compiler options.