CardRaytracerBenchmark
This is a short C++/Java/C#/Python benchmark. Based on Paul Heckbert's sources.
Install / Use
/learn @Mark-Kovalyov/CardRaytracerBenchmarkREADME
Welcome to Card Raytracer Benchmark.

Our goals:
-
Make the port of 'Card-Raytracer' into Java, Python, CSharp, Digital Mars D, GoLang, JavaScript
-
Estimate performance index.
-
Make conclusions
Short insructions for Users:
-
Download & Install Java, Python, CSharp, Digital Mars D, GoLang, JavaScript environment.
-
Run 'run-benchmark'
-
Read report.
Developers
-
Mayton
-
Ruslan (kealon)
-
MasterZiv (masterziv)
-
dr-sm (dr-sm)
-
Dmitriy (dmitriyt)
-
Igor Yudincev (wolfnstein)
-
Siemargl
-
DRSM
-
vadimalekseev
REPORTS
Hardware configuration details
| Parameter | Value |---------------------|------- |Architecture: |x86_64 |CPU op-mode(s): |32-bit, 64-bit |Byte Order: |Little Endian |CPU(s): |12| |On-line CPU(s) list: |0-11 |Thread(s) per core: |2 |Core(s) per socket: |6 |Socket(s): |1 |NUMA node(s): |1 |Vendor ID: |AuthenticAMD |CPU family: |23 |Model: |1 |Model name: |AMD Ryzen 5 1600 Six-Core Processor |Stepping: |1 |CPU MHz: |1374.622 |CPU max MHz: |3200.0000 |CPU min MHz: |1550.0000 |BogoMIPS: |6387.20 |Virtualization: |AMD-V |L1d cache: |32K |L1i cache: |64K |L2 cache: |512K |L3 cache: |8192K |NUMA node0 CPU(s): |0-11
Rust (rustc 1.39.0, cargo 1.39.0, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 15-Feb-2020
| Author |Language/Type | Options | Elapsed time |--------|--------------|-----------|------------- | - | Rust | --release | 8.7 s
C (gcc version 7.4.0/Clang, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 15-Feb-2020
| Author | Language/Type | Options | Elapsed time ------|-------|---------|-------------- | Siemargl | C/Raytracer_handofdos2 | -O3 -march=native -m64 -msse4.2 -ffast-math |9.8 s | Siemargl | C/Raytracer_handofdosavx2 | -O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION | 10.9 s | Siemargl | C/Raytracer_handofdosAVX3 | -O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION | 32.7 s | Siemargl | Clang/Raytracer_handofdos_r2.clang.exe | -lm -O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION | 10.8 | Siemargl | Clang/Raytracer_handofdos_r3experimental.clang.exe |-lm -O3 -march=native -m64 -msse4.2 -ffast-math -DAVX_VERSION | 10.8
C++ (gcc version 7.4.0, clang version 6.0.0-1ubuntu2, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 16-Feb 2020
|Author | Language/Type | Options | Elapsed time |---------|-------------------|-------------------|------------- |Heckbert | C++/Canonical | -O3 -march=native | 10.37 s |- | C++/Opt | -O3 -march=native | 10.03 s |RWolf | C++/RWolf | -O3 -march=native | 9.06 s |Heckbert | Clang++/Canonical | -O3 -march=native | 10.67 s |- | Clang++/Opt | -O3 -march=native | 12.97 s |RWolf | Clang++/RWolf | -O3 -march=native | 13.32 s
Java-11 (OpenJDK 11.0.4 64-Bit, Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 15-Feb-2020
Author | Language/Type | Multithread options | Elapsed time -------|---------------|---------------------|------------- Mayton | Java | | 12s Mayton | Java | 2 threads | ? Mayton | Java | 3 threads | ? Mayton | Java | 4 threads | ? Mayton | Java | 5 threads | ?
GoLang (Linux 5.15.0-52-generic 20.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux)
|Author | Language/Type | Options | Elapsed time | Date |--------------|----------------------|---------|--------------|------ |vadimalekseev | go1.13.8 linux/amd64 | | 18.5 s | 19-Nov-2022 |DRSM | go1.10.4 linux/amd64 | | 23 s
Digital Mars D : gdc (Ubuntu 8-20180414-1ubuntu2) 8.0.1 20180414 (experimental) (no up-to-date!)
Language/Type | Options | Elapsed time --------------|---------|------------- Dlang | -O2 -msse4 -ffast-math | 21.14 s
Free Pascal (Linux 5.3.0-28-generic 18.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 29-Feb-2020
|Author | Language/Type | Options | Elapsed time |-------|---------------|---------|------------- | - | FPC 3.0.4+dfsg-18ubuntu2 for x86_64 | -CX -O3 -XX -vewnhi -Fi. -Fu. -FU. | 32 s
Node JS (non up-to-date!)
Author | Language/Type | Options | Elapsed time -|--------------|---------|------------- DRSM | NodeJS v8.10.0 | | 1m 30 s
Python/PyPy (non up-to-date!)
Language/Type | Options | Elapsed time --------------|---------|-------------
C#/.Net (The Mono C# compiler is Copyright 2001-2011, Novell, Inc) (non up-to-date!)
Language/Type | Options | Multithread options | Elapsed time --------------|---------|---------------------|------------- |C#/Single-Thread | -o+ | | 75.31 |C#/Multi-Thread | -o+ | 2 threads | 37.67 |C#/Multi-Thread | -o+ | 3 threads | 41.34 |C#/Multi-Thread | -o+ | 4 threads | 40.34 |C#/Multi-Thread | -o+ | 5 threads | 41.76
PHP (non up-to-date!)
Authror | Language/Type | Options | Elapsed time -|--------------|---------|------------- DRSM | | |
Ruby (non up-to-date!)
Language/Type | Options | Elapsed time --------------|---------|-------------
Common Lisp (non up-to-date!)
Language/Type | Options | Elapsed time --------------|---------|-------------
FAQ
F: How to display .ppm file?
A: Try to use:
- http://www.irfanview.com/
- http://www.libreoffice.org/
Usefull links:
-
Discussion:
http://www.sql.ru/forum/1173809-1/tyapnichnyy-benchmark-cpu-part-1
-
Other like projects
https://github.com/mzucker/miniray https://github.com/dcousens/RayTracer
Related Skills
node-connect
345.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
104.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
