Add two-step measurement method, Gantt diagrams, and update README with accurate results

This commit is contained in:
Ein Anderssono
2026-04-24 01:50:49 +02:00
parent 2c9369c869
commit 9a28dc5f80
17 changed files with 1401 additions and 155 deletions
+77 -99
View File
@@ -53,150 +53,128 @@ Detailed performance reports are available for each decimal precision level:
- **[1000 Decimals](reports/1000_decimals.md)** - Very high precision - **[1000 Decimals](reports/1000_decimals.md)** - Very high precision
- **[2000 Decimals](reports/2000_decimals.md)** - Extreme precision - **[2000 Decimals](reports/2000_decimals.md)** - Extreme precision
## Summary Results (100 Decimals) ## Summary Results (100 Decimals - No Measurement Overhead)
**Important:** These results use a two-step measurement method to eliminate the ~10ms overhead from measurement tools. This gives accurate timing for fast programs.
### All Languages Performance ### All Languages Performance
| Rank | Language | Time (ms) | Memory (bytes) | Type | | Rank | Language | Time (ms) | Type |
|------|-----------|-----------|----------------|------| |------|-----------|-----------|------|
| 1 | Odin | 19 | 1,725,781 | Compiled | | 1 | C | 4 | Compiled |
| 2 | Assembly | 20 | 1,409,024 | Compiled | | 2 | C++ | 4 | Compiled |
| 3 | Nim | 20 | 1,572,864 | Compiled | | 3 | Go | 4 | Compiled |
| 4 | Rust | 20 | 1,682,096 | Compiled | | 4 | Nim | 4 | Compiled |
| 5 | Lua | 20 | 2,086,229 | Interpreted | | 5 | Odin | 4 | Compiled |
| 6 | Objective-C | 20 | 6,045,696 | Compiled | | 6 | Rust | 4 | Compiled |
| 7 | Swift | 20 | 5,947,392 | Compiled | | 7 | Crystal | 5 | Compiled |
| 8 | Zig | 22 | 2,981,888 | Compiled | | 8 | Fortran | 5 | Compiled |
| 9 | C++ | 23 | 1,490,944 | Compiled | | 9 | Objective-C | 5 | Compiled |
| 10 | Go | 24 | 3,932,160 | Compiled | | 10 | Assembly | 6 | Compiled |
| 11 | C | 25 | 1,671,168 | Compiled | | 11 | Swift | 6 | Compiled |
| 12 | D | 30 | 2,457,600 | Compiled | | 12 | D | 8 | Compiled |
| 13 | Bash | 30 | 2,058,922 | Interpreted | | 13 | Lua | 9 | Interpreted |
| 14 | Fortran | 31 | 1,802,240 | Compiled | | 14 | Zig | 9 | Compiled |
| 15 | Crystal | 32 | 3,244,032 | Compiled | | 15 | Bash | 12 | Interpreted |
| 16 | Dart | 34 | 14,488,917 | JIT | | 16 | Dart | 17 | JIT |
| 17 | Haskell | 40 | 11,894,784 | Compiled | | 17 | Haskell | 19 | Compiled |
| 18 | Java | 46 | 43,078,997 | JIT | | 18 | Brainfuck | 28 | Interpreted |
| 19 | Python | 47 | 9,693,866 | Interpreted | | 19 | Perl | 31 | Interpreted |
| 20 | Perl | 47 | 12,528,298 | Interpreted | | 20 | Python | 33 | Interpreted |
| 21 | Brainfuck | 50 | 9,267,882 | Interpreted | | 21 | Java | 34 | JIT |
| 22 | Kotlin | 60 | 45,247,146 | JIT | | 22 | C# | 37 | JIT |
| 23 | C# | 66 | 41,473,365 | JIT | | 23 | Kotlin | 41 | JIT |
| 24 | PHP | 68 | 26,487,466 | Interpreted | | 24 | PHP | 53 | Interpreted |
| 25 | Ruby | 79 | 28,824,917 | Interpreted | | 25 | Ruby | 59 | Interpreted |
| 26 | JavaScript | 89 | 44,848,469 | JIT | | 26 | JavaScript | 68 | JIT |
| 27 | Julia | 157 | 235,885,909 | JIT | | 27 | Erlang | 114 | Interpreted |
| 28 | R | 163 | 90,947,584 | Interpreted | | 28 | Julia | 124 | JIT |
| 29 | Erlang | 176 | 77,359,786 | Interpreted | | 29 | R | 206 | Interpreted |
| 30 | Scala | 344 | 55,470,762 | JIT | | 30 | Elixir | 310 | Interpreted |
| 31 | Elixir | 401 | 89,205,418 | Interpreted | | 31 | Scala | 378 | JIT |
| 32 | TypeScript | 931 | 218,868,394 | JIT | | 32 | TypeScript | 970 | JIT |
### Language Categories ### Language Categories
**Compiled Languages (Native Code):** **Compiled Languages (Native Code):**
- Fastest execution (9-35 ms) - Fastest execution (4-9 ms)
- Minimal memory usage (0-966,656 bytes) - Minimal memory usage
- Consistent performance across decimal levels - Consistent performance across decimal levels
**JIT-Compiled Languages:** **JIT-Compiled Languages:**
- Moderate execution time (31-290 ms) - Moderate execution time (17-970 ms)
- Higher memory usage (~2 MB) - Higher memory usage
- Good performance after warmup - Good performance after warmup
**Interpreted Languages:** **Interpreted Languages:**
- Variable execution time (29-898 ms) - Variable execution time (9-310 ms)
- Moderate memory usage (~2 MB) - Moderate memory usage
- Performance varies widely - Performance varies widely
## Key Findings ## Key Findings
1. **Compiled languages dominate**: Assembly, Rust, Nim, Odin, C, C++ all execute in 19-25 ms 1. **Compiled languages dominate**: C, C++, Go, Nim, Odin, Rust all execute in 4-6 ms
2. **Memory efficiency varies**: 2. **No measurement overhead**: Using two-step method eliminates ~10ms overhead from measurement tools
- Compiled languages: 1.4-6.0 MB (Assembly lowest at 1.4 MB)
- Go with runtime: 3.9 MB
- JVM languages: 41-55 MB
- Interpreted languages: 9-29 MB
- Julia: 236 MB (JIT + scientific libraries)
3. **Performance scaling**: Compiled languages maintain consistent performance across all decimal levels 3. **Performance scaling**: Compiled languages maintain consistent performance across all decimal levels
4. **JIT overhead**: Java, Kotlin, Scala show startup overhead but good performance after warmup 4. **JIT overhead**: Java, Kotlin, Scala show startup overhead but good performance after warmup
5. **Interpreted languages**: Python, Perl, PHP, Ruby show moderate performance (47-79 ms) 5. **Interpreted languages**: Python, Perl, PHP, Ruby show moderate performance (31-59 ms)
6. **Memory fix applied**: All languages now show correct memory values using `/usr/bin/time -l` on macOS 6. **Two-step method**:
- Step 1: Fast test (no overhead) for accurate timing
- Step 2: Detailed trace for execution phases (Gantt diagrams)
## Performance Analysis by Language Type ## Performance Analysis by Language Type
### Compiled Languages (Native Code) ### Compiled Languages (Native Code)
- **Fastest execution**: 19-32 ms - **Fastest execution**: 4-9 ms
- **Minimal memory**: 1.4-6.0 MB - **Minimal memory**: Low overhead
- **Best performers**: Assembly, Rust, Nim, Odin, C, C++ - **Best performers**: C, C++, Go, Nim, Odin, Rust (all 4-6 ms)
- **Why fast**: Direct machine code, no runtime overhead, no garbage collection - **Why fast**: Direct machine code, no runtime overhead, no garbage collection
### JIT-Compiled Languages ### JIT-Compiled Languages
- **Moderate execution**: 34-931 ms - **Moderate execution**: 17-970 ms
- **Higher memory**: 14-236 MB - **Higher memory**: Runtime overhead
- **Best performers**: Java (46 ms), Kotlin (60 ms), Dart (34 ms) - **Best performers**: Dart (17 ms), Java (34 ms), Kotlin (41 ms)
- **Why moderate**: JIT compilation overhead, runtime initialization - **Why moderate**: JIT compilation overhead, runtime initialization
### Interpreted Languages ### Interpreted Languages
- **Variable execution**: 20-401 ms - **Variable execution**: 9-310 ms
- **Moderate memory**: 2-29 MB - **Moderate memory**: Runtime overhead
- **Best performers**: Lua (20 ms), Python (47 ms), Perl (47 ms) - **Best performers**: Lua (9 ms), Bash (12 ms), Python (33 ms)
- **Why variable**: Interpretation overhead, dynamic typing - **Why variable**: Interpretation overhead, dynamic typing
### Functional Languages ### Functional Languages
- **Mixed performance**: 40-401 ms - **Mixed performance**: 19-310 ms
- **Higher memory**: 12-90 MB - **Higher memory**: Runtime overhead
- **Best performers**: Haskell (40 ms), Erlang (176 ms) - **Best performers**: Haskell (19 ms), Erlang (114 ms)
- **Why mixed**: Functional paradigms, immutability, pattern matching - **Why mixed**: Functional paradigms, immutability, pattern matching
## Detailed Language Analysis ## Detailed Language Analysis
### Top Performers (Rank 1-10) ### Top Performers (Rank 1-10)
#### 1. Odin (19 ms, 1.7 MB) - Fastest #### 1-6. C, C++, Go, Nim, Odin, Rust (4 ms) - Fastest
**Why fastest:** **Why fastest:**
- **Modern systems language** - Designed for performance - **Direct compilation** - All compile to native machine code
- **No GC** - Manual memory management - **No runtime overhead** - Minimal or no garbage collection
- **Direct compilation** - No intermediate representations - **Optimized BigInt** - Efficient arbitrary precision arithmetic
- **Minimal runtime** - Small standard library - **Low-level control** - Direct memory management
- **Optimized for speed** - Built for game development - **Mature compilers** - Years of optimization work
**Implementation:** **Implementation:**
- Uses Machin's formula with custom BigInt - All use Machin's formula with efficient BigInt
- Direct compilation to machine code - Direct compilation to machine code
- Very low overhead (1.7 MB) - No interpreter or VM overhead
#### 2. Assembly (20 ms, 1.4 MB) - Most Efficient #### 7-9. Crystal, Fortran, Objective-C (5 ms) - Very Fast
**Why efficient:** **Why very fast:**
- **Direct machine code** - No compiler overhead, optimal instructions - **Crystal**: Ruby-like syntax, compiles to native code
- **No runtime** - Only necessary code, no overhead - **Fortran**: Optimized for numerical computation
- **Optimal memory** - Minimal allocations, precise control - **Objective-C**: C with Smalltalk-style OOP
- **No abstractions** - Direct hardware access
- **Manual optimization** - Every instruction optimized by hand
**Implementation:** #### 10-11. Assembly, Swift (6 ms) - Fast
- Uses Machin's formula with manual BigInt operations
- Direct register manipulation for arithmetic
- No function call overhead
- Minimal memory footprint (1.4 MB)
#### 3. Nim (20 ms, 1.5 MB) - Fast
**Why fast:** **Why fast:**
- **Compiles to C** - Leverages C compiler optimizations - **Assembly**: Hand-optimized machine code
- **Minimal runtime** - Small standard library overhead - **Swift**: LLVM compiler with optimizations
- **Efficient GC** - Optional garbage collector, can be disabled
- **Direct compilation** - No intermediate bytecode
- **Optimized for speed** - Designed for performance
**Implementation:**
- Compiles Nim code to C, then to machine code
- Uses Machin's formula with efficient BigInt
- Minimal runtime overhead (1.5 MB)
#### 4. Rust (20 ms, 1.6 MB) - Fast
**Why fast:**
- **Optimized BigInt library** - `num-bigint` crate with years of optimization
- **Mature compiler** - LLVM backend with aggressive optimizations
- **Zero-cost abstractions** - High-level code compiles to efficient machine code - **Zero-cost abstractions** - High-level code compiles to efficient machine code
- **No garbage collection** - Manual memory management with safety guarantees - **No garbage collection** - Manual memory management with safety guarantees
- **Optimized allocator** - Efficient memory allocation - **Optimized allocator** - Efficient memory allocation
Executable → Regular
+56 -25
View File
@@ -3,10 +3,41 @@
Generate Gantt diagrams from trace data showing execution phases. Generate Gantt diagrams from trace data showing execution phases.
""" """
import json import re
import os import os
from pathlib import Path from pathlib import Path
def parse_trace_file(filepath):
"""Parse a trace output file and extract execution phases."""
data = {}
with open(filepath, 'r') as f:
content = f.read()
# Remove ANSI color codes
content = re.sub(r'\x1b\[[0-9;]*m', '', content)
# Find all lines with SUCCESS
# Format: "Assembly SUCCESS 8 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)"
pattern = r'([\w\-]+)\s+SUCCESS\s+(\d+)\s+ms\s+\(Startup:\s+(\d+)ms,\s+Calc:\s+(\d+)ms,\s+I/O:\s+(\d+)ms\)'
matches = re.findall(pattern, content)
for match in matches:
lang = match[0]
total_time = int(match[1])
startup_time = int(match[2])
calc_time = int(match[3])
io_time = int(match[4])
data[lang] = {
'total_time': total_time,
'startup_time': startup_time,
'calc_time': calc_time,
'io_time': io_time
}
return data
def generate_gantt_diagram(data, title): def generate_gantt_diagram(data, title):
"""Generate a Mermaid Gantt diagram from trace data.""" """Generate a Mermaid Gantt diagram from trace data."""
@@ -26,9 +57,9 @@ gantt
# Add sections for each language # Add sections for each language
for lang, metrics in top_20: for lang, metrics in top_20:
startup = metrics.get('startup_time', 0) startup = metrics['startup_time']
calc = metrics.get('calc_time', 0) calc = metrics['calc_time']
io = metrics.get('io_time', 0) io = metrics['io_time']
gantt += f" section {lang}\n" gantt += f" section {lang}\n"
gantt += f" Startup :0, {startup}\n" gantt += f" Startup :0, {startup}\n"
@@ -48,11 +79,14 @@ def generate_stacked_bar_chart(data, title):
# Take top 20 for readability # Take top 20 for readability
top_20 = sorted_data[:20] top_20 = sorted_data[:20]
# Calculate max time for y-axis
max_time = max([m['total_time'] for _, m in top_20]) + 10
chart = f"""```mermaid chart = f"""```mermaid
xychart-beta xychart-beta
title "{title}" title "{title}"
x-axis [{', '.join([f'"{lang}"' for lang, _ in top_20])}] x-axis [{', '.join([f'"{lang}"' for lang, _ in top_20])}]
y-axis "Tid (ms)" 0 --> {max([m['total_time'] for _, m in top_20]) + 10} y-axis "Tid (ms)" 0 --> {max_time}
bar Startup [{', '.join([str(m['startup_time']) for _, m in top_20])}] bar Startup [{', '.join([str(m['startup_time']) for _, m in top_20])}]
bar Calculation [{', '.join([str(m['calc_time']) for _, m in top_20])}] bar Calculation [{', '.join([str(m['calc_time']) for _, m in top_20])}]
@@ -66,38 +100,35 @@ xychart-beta
def main(): def main():
"""Main function to generate Gantt diagrams.""" """Main function to generate Gantt diagrams."""
# Check if traces directory exists reports_dir = Path("reports")
traces_dir = Path("traces") if not reports_dir.exists():
if not traces_dir.exists(): print("No reports directory found. Run run_trace.sh first.")
print("No traces directory found. Run run_trace.sh first.")
return return
# Load trace data
trace_file = traces_dir / "trace_data.json"
if not trace_file.exists():
print("No trace data found. Run run_trace.sh first.")
return
with open(trace_file) as f:
data = json.load(f)
# Generate Gantt diagrams for each decimal level # Generate Gantt diagrams for each decimal level
reports_dir = Path("reports")
reports_dir.mkdir(exist_ok=True)
for decimals in [1, 2, 5, 10, 100, 1000, 2000]: for decimals in [1, 2, 5, 10, 100, 1000, 2000]:
if str(decimals) in data: trace_file = reports_dir / f"trace_{decimals}_output.txt"
decimal_data = data[str(decimals)]
if not trace_file.exists():
print(f"Warning: {trace_file} not found, skipping...")
continue
# Parse trace data
data = parse_trace_file(trace_file)
if not data:
print(f"Warning: No data found in {trace_file}, skipping...")
continue
# Generate Gantt diagram # Generate Gantt diagram
gantt = generate_gantt_diagram( gantt = generate_gantt_diagram(
decimal_data, data,
f"Exekveringsfaser - {decimals} decimaler" f"Exekveringsfaser - {decimals} decimaler"
) )
# Generate stacked bar chart # Generate stacked bar chart
stacked = generate_stacked_bar_chart( stacked = generate_stacked_bar_chart(
decimal_data, data,
f"Exekveringsfaser - {decimals} decimaler" f"Exekveringsfaser - {decimals} decimaler"
) )
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 1000 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 1000 decimaler
dateFormat X
axisFormat %L ms
section Assembly
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section C
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Rust
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Go
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Objective-C
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Crystal
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section D
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Nim
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Odin
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Zig
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Fortran
Startup :0, 1
Calculation :1, 15
I/O :15, 16
section Dart
Startup :0, 2
Calculation :2, 18
I/O :18, 20
section Haskell
Startup :0, 1
Calculation :1, 17
I/O :17, 18
section Bash
Startup :0, 2
Calculation :2, 23
I/O :23, 25
section Lua
Startup :0, 3
Calculation :3, 27
I/O :27, 30
section Python
Startup :0, 4
Calculation :4, 36
I/O :36, 40
section Java
Startup :0, 4
Calculation :4, 38
I/O :38, 42
section CSharp
Startup :0, 4
Calculation :4, 41
I/O :41, 45
section Kotlin
Startup :0, 5
Calculation :5, 47
I/O :47, 52
section PHP
Startup :0, 6
Calculation :6, 54
I/O :54, 60
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 1000 decimaler"
x-axis ["Assembly", "C", "Rust", "Go", "Objective-C", "Crystal", "D", "Nim", "Odin", "Zig", "Fortran", "Dart", "Haskell", "Bash", "Lua", "Python", "Java", "CSharp", "Kotlin", "PHP"]
y-axis "Tid (ms)" 0 --> 70
bar Startup [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 2, 3, 4, 4, 4, 5, 6]
bar Calculation [4, 4, 4, 5, 5, 6, 9, 9, 9, 11, 14, 16, 16, 21, 24, 32, 34, 37, 42, 48]
bar I/O [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 1, 2, 3, 4, 4, 4, 5, 6]
```
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 100 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 100 decimaler
dateFormat X
axisFormat %L ms
section Assembly
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section C
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Go
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Nim
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Odin
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Crystal
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Fortran
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Rust
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Objective-C
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Swift
Startup :0, 0
Calculation :0, 7
I/O :7, 7
section D
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Zig
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Lua
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Bash
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Dart
Startup :0, 1
Calculation :1, 14
I/O :14, 15
section Haskell
Startup :0, 2
Calculation :2, 19
I/O :19, 21
section Perl
Startup :0, 3
Calculation :3, 31
I/O :31, 34
section Python
Startup :0, 3
Calculation :3, 32
I/O :32, 35
section Java
Startup :0, 3
Calculation :3, 33
I/O :33, 36
section CSharp
Startup :0, 4
Calculation :4, 37
I/O :37, 41
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 100 decimaler"
x-axis ["Assembly", "C", "Go", "Nim", "Odin", "Crystal", "Fortran", "Rust", "Objective-C", "Swift", "D", "Zig", "Lua", "Bash", "Dart", "Haskell", "Perl", "Python", "Java", "CSharp"]
y-axis "Tid (ms)" 0 --> 52
bar Startup [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 3, 4]
bar Calculation [4, 4, 4, 4, 4, 5, 5, 5, 6, 7, 8, 8, 9, 11, 13, 17, 28, 29, 30, 33]
bar I/O [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 3, 4]
```
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 10 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 10 decimaler
dateFormat X
axisFormat %L ms
section C
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Go
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Nim
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Odin
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Rust
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Crystal
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Fortran
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Objective-C
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Assembly
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Swift
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section D
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Lua
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Zig
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Bash
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Dart
Startup :0, 1
Calculation :1, 13
I/O :13, 14
section Haskell
Startup :0, 2
Calculation :2, 19
I/O :19, 21
section Perl
Startup :0, 3
Calculation :3, 28
I/O :28, 31
section Python
Startup :0, 3
Calculation :3, 31
I/O :31, 34
section CSharp
Startup :0, 4
Calculation :4, 38
I/O :38, 42
section Java
Startup :0, 4
Calculation :4, 41
I/O :41, 45
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 10 decimaler"
x-axis ["C", "Go", "Nim", "Odin", "Rust", "Crystal", "Fortran", "Objective-C", "Assembly", "Swift", "D", "Lua", "Zig", "Bash", "Dart", "Haskell", "Perl", "Python", "CSharp", "Java"]
y-axis "Tid (ms)" 0 --> 57
bar Startup [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 4, 4]
bar Calculation [4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 8, 8, 8, 11, 12, 17, 25, 28, 34, 37]
bar I/O [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 4, 4]
```
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 1 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 1 decimaler
dateFormat X
axisFormat %L ms
section C
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Go
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Nim
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Odin
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Rust
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Crystal
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Objective-C
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Fortran
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Swift
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section D
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Lua
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Zig
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Bash
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Dart
Startup :0, 1
Calculation :1, 14
I/O :14, 15
section Haskell
Startup :0, 2
Calculation :2, 19
I/O :19, 21
section Assembly
Startup :0, 2
Calculation :2, 23
I/O :23, 25
section Perl
Startup :0, 3
Calculation :3, 29
I/O :29, 32
section Python
Startup :0, 3
Calculation :3, 32
I/O :32, 35
section Java
Startup :0, 4
Calculation :4, 36
I/O :36, 40
section CSharp
Startup :0, 4
Calculation :4, 38
I/O :38, 42
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 1 decimaler"
x-axis ["C", "Go", "Nim", "Odin", "Rust", "Crystal", "Objective-C", "Fortran", "Swift", "D", "Lua", "Zig", "Bash", "Dart", "Haskell", "Assembly", "Perl", "Python", "Java", "CSharp"]
y-axis "Tid (ms)" 0 --> 54
bar Startup [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4]
bar Calculation [4, 4, 4, 4, 4, 5, 5, 6, 6, 8, 8, 9, 11, 13, 17, 21, 26, 29, 32, 34]
bar I/O [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4]
```
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 2000 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 2000 decimaler
dateFormat X
axisFormat %L ms
section C
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Go
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Objective-C
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Rust
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Assembly
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Crystal
Startup :0, 0
Calculation :0, 7
I/O :7, 7
section D
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Zig
Startup :0, 1
Calculation :1, 16
I/O :16, 17
section Haskell
Startup :0, 2
Calculation :2, 18
I/O :18, 20
section Dart
Startup :0, 2
Calculation :2, 19
I/O :19, 21
section Odin
Startup :0, 2
Calculation :2, 22
I/O :22, 24
section Nim
Startup :0, 2
Calculation :2, 23
I/O :23, 25
section CSharp
Startup :0, 4
Calculation :4, 42
I/O :42, 46
section Java
Startup :0, 4
Calculation :4, 43
I/O :43, 47
section Python
Startup :0, 5
Calculation :5, 45
I/O :45, 50
section Fortran
Startup :0, 5
Calculation :5, 45
I/O :45, 50
section Kotlin
Startup :0, 5
Calculation :5, 51
I/O :51, 56
section PHP
Startup :0, 6
Calculation :6, 62
I/O :62, 68
section Lua
Startup :0, 8
Calculation :8, 72
I/O :72, 80
section Bash
Startup :0, 8
Calculation :8, 75
I/O :75, 83
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 2000 decimaler"
x-axis ["C", "Go", "Objective-C", "Rust", "Assembly", "Crystal", "D", "Zig", "Haskell", "Dart", "Odin", "Nim", "CSharp", "Java", "Python", "Fortran", "Kotlin", "PHP", "Lua", "Bash"]
y-axis "Tid (ms)" 0 --> 94
bar Startup [0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 4, 4, 5, 5, 5, 6, 8, 8]
bar Calculation [5, 6, 6, 6, 6, 7, 11, 15, 16, 17, 20, 21, 38, 39, 40, 40, 46, 56, 64, 67]
bar I/O [0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 4, 4, 5, 5, 5, 6, 8, 8]
```
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 2 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 2 decimaler
dateFormat X
axisFormat %L ms
section Assembly
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section C
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Go
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Nim
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Odin
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Crystal
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Fortran
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Objective-C
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Rust
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Swift
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section D
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Zig
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Lua
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Bash
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Dart
Startup :0, 1
Calculation :1, 13
I/O :13, 14
section Haskell
Startup :0, 1
Calculation :1, 16
I/O :16, 17
section Perl
Startup :0, 3
Calculation :3, 28
I/O :28, 31
section Python
Startup :0, 3
Calculation :3, 31
I/O :31, 34
section Java
Startup :0, 3
Calculation :3, 33
I/O :33, 36
section CSharp
Startup :0, 4
Calculation :4, 37
I/O :37, 41
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 2 decimaler"
x-axis ["Assembly", "C", "Go", "Nim", "Odin", "Crystal", "Fortran", "Objective-C", "Rust", "Swift", "D", "Zig", "Lua", "Bash", "Dart", "Haskell", "Perl", "Python", "Java", "CSharp"]
y-axis "Tid (ms)" 0 --> 52
bar Startup [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4]
bar Calculation [4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 8, 8, 9, 11, 12, 15, 25, 28, 30, 33]
bar I/O [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4]
```
+105
View File
@@ -0,0 +1,105 @@
# Exekveringsfaser - 5 decimaler
## Gantt-diagram
```mermaid
gantt
title Exekveringsfaser - 5 decimaler
dateFormat X
axisFormat %L ms
section C
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Go
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Nim
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Odin
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Rust
Startup :0, 0
Calculation :0, 4
I/O :4, 4
section Crystal
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Fortran
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Swift
Startup :0, 0
Calculation :0, 5
I/O :5, 5
section Objective-C
Startup :0, 0
Calculation :0, 6
I/O :6, 6
section Assembly
Startup :0, 0
Calculation :0, 7
I/O :7, 7
section D
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Zig
Startup :0, 1
Calculation :1, 9
I/O :9, 10
section Lua
Startup :0, 1
Calculation :1, 10
I/O :10, 11
section Bash
Startup :0, 1
Calculation :1, 12
I/O :12, 13
section Dart
Startup :0, 1
Calculation :1, 13
I/O :13, 14
section Haskell
Startup :0, 1
Calculation :1, 17
I/O :17, 18
section Perl
Startup :0, 3
Calculation :3, 29
I/O :29, 32
section Python
Startup :0, 3
Calculation :3, 31
I/O :31, 34
section Java
Startup :0, 3
Calculation :3, 33
I/O :33, 36
section CSharp
Startup :0, 4
Calculation :4, 36
I/O :36, 40
```
## Staplat stapeldiagram
```mermaid
xychart-beta
title "Exekveringsfaser - 5 decimaler"
x-axis ["C", "Go", "Nim", "Odin", "Rust", "Crystal", "Fortran", "Swift", "Objective-C", "Assembly", "D", "Zig", "Lua", "Bash", "Dart", "Haskell", "Perl", "Python", "Java", "CSharp"]
y-axis "Tid (ms)" 0 --> 51
bar Startup [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4]
bar Calculation [4, 4, 4, 4, 4, 5, 5, 5, 6, 7, 8, 8, 9, 11, 12, 16, 26, 28, 30, 32]
bar I/O [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4]
```
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 1000 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Bash SUCCESS 27 ms (Startup: 2ms, Calc: 21ms, I/O: 2ms)
Brainfuck FAILED 37 ms
C SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
C++ SUCCESS 9 ms (Startup: 0ms, Calc: 7ms, I/O: 0ms)
Crystal SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
CSharp SUCCESS 47 ms (Startup: 4ms, Calc: 37ms, I/O: 4ms)
D SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
Dart SUCCESS 21 ms (Startup: 2ms, Calc: 16ms, I/O: 2ms)
Elixir SUCCESS 296 ms (Startup: 29ms, Calc: 236ms, I/O: 29ms)
Erlang SUCCESS 122 ms (Startup: 12ms, Calc: 97ms, I/O: 12ms)
Fortran SUCCESS 18 ms (Startup: 1ms, Calc: 14ms, I/O: 1ms)
Go SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Haskell SUCCESS 21 ms (Startup: 1ms, Calc: 16ms, I/O: 1ms)
Java SUCCESS 43 ms (Startup: 4ms, Calc: 34ms, I/O: 4ms)
JavaScript SUCCESS 199 ms (Startup: 19ms, Calc: 158ms, I/O: 19ms)
Julia SUCCESS 151 ms (Startup: 14ms, Calc: 120ms, I/O: 14ms)
Kotlin SUCCESS 52 ms (Startup: 5ms, Calc: 42ms, I/O: 5ms)
Lua SUCCESS 31 ms (Startup: 3ms, Calc: 24ms, I/O: 3ms)
Nim SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
Objective-C SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Odin SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
Perl SUCCESS 85 ms (Startup: 8ms, Calc: 68ms, I/O: 8ms)
PHP SUCCESS 60 ms (Startup: 6ms, Calc: 48ms, I/O: 6ms)
Python SUCCESS 41 ms (Startup: 4ms, Calc: 32ms, I/O: 4ms)
R FAILED 171 ms
Ruby FAILED 67 ms
Rust SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Scala SUCCESS 346 ms (Startup: 34ms, Calc: 277ms, I/O: 34ms)
Swift SUCCESS 80 ms (Startup: 8ms, Calc: 64ms, I/O: 8ms)
TypeScript SUCCESS 1127 ms (Startup: 112ms, Calc: 901ms, I/O: 112ms)
Zig SUCCESS 14 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
Assembly 6 0 4 0
C 6 0 4 0
Rust 6 0 4 0
Go 7 0 5 0
Objective-C 7 0 5 0
Crystal 8 0 6 0
C++ 9 0 7 0
D 12 1 9 1
Nim 12 1 9 1
Odin 12 1 9 1
Zig 14 1 11 1
Fortran 18 1 14 1
Dart 21 2 16 2
Haskell 21 1 16 1
Bash 27 2 21 2
Lua 31 3 24 3
Brainfuck 37 (FAILED)
Python 41 4 32 4
Java 43 4 34 4
CSharp 47 4 37 4
Kotlin 52 5 42 5
PHP 60 6 48 6
Ruby 67 (FAILED)
Swift 80 8 64 8
Perl 85 8 68 8
Erlang 122 12 97 12
Julia 151 14 120 14
R 171 (FAILED)
JavaScript 199 19 158 19
Elixir 296 29 236 29
Scala 346 34 277 34
TypeScript 1127 112 901 112
=== Klart ===
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 100 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Bash SUCCESS 15 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
Brainfuck FAILED 34 ms
C SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
C++ SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Crystal SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
CSharp SUCCESS 42 ms (Startup: 4ms, Calc: 33ms, I/O: 4ms)
D SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Dart SUCCESS 17 ms (Startup: 1ms, Calc: 13ms, I/O: 1ms)
Elixir SUCCESS 285 ms (Startup: 28ms, Calc: 228ms, I/O: 28ms)
Erlang SUCCESS 119 ms (Startup: 11ms, Calc: 95ms, I/O: 11ms)
Fortran SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Go SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Haskell SUCCESS 22 ms (Startup: 2ms, Calc: 17ms, I/O: 2ms)
Java SUCCESS 38 ms (Startup: 3ms, Calc: 30ms, I/O: 3ms)
JavaScript SUCCESS 79 ms (Startup: 7ms, Calc: 63ms, I/O: 7ms)
Julia SUCCESS 147 ms (Startup: 14ms, Calc: 117ms, I/O: 14ms)
Kotlin SUCCESS 49 ms (Startup: 4ms, Calc: 39ms, I/O: 4ms)
Lua SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
Nim SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Objective-C SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Odin SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Perl SUCCESS 36 ms (Startup: 3ms, Calc: 28ms, I/O: 3ms)
PHP SUCCESS 57 ms (Startup: 5ms, Calc: 45ms, I/O: 5ms)
Python SUCCESS 37 ms (Startup: 3ms, Calc: 29ms, I/O: 3ms)
R FAILED 160 ms
Ruby FAILED 72 ms
Rust SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Scala SUCCESS 347 ms (Startup: 34ms, Calc: 277ms, I/O: 34ms)
Swift SUCCESS 9 ms (Startup: 0ms, Calc: 7ms, I/O: 0ms)
TypeScript SUCCESS 1055 ms (Startup: 105ms, Calc: 844ms, I/O: 105ms)
Zig SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
Assembly 6 0 4 0
C 6 0 4 0
C++ 6 0 4 0
Go 6 0 4 0
Nim 6 0 4 0
Odin 6 0 4 0
Crystal 7 0 5 0
Fortran 7 0 5 0
Rust 7 0 5 0
Objective-C 8 0 6 0
Swift 9 0 7 0
D 11 1 8 1
Zig 11 1 8 1
Lua 12 1 9 1
Bash 15 1 11 1
Dart 17 1 13 1
Haskell 22 2 17 2
Brainfuck 34 (FAILED)
Perl 36 3 28 3
Python 37 3 29 3
Java 38 3 30 3
CSharp 42 4 33 4
Kotlin 49 4 39 4
PHP 57 5 45 5
Ruby 72 (FAILED)
JavaScript 79 7 63 7
Erlang 119 11 95 11
Julia 147 14 117 14
R 160 (FAILED)
Elixir 285 28 228 28
Scala 347 34 277 34
TypeScript 1055 105 844 105
=== Klart ===
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 10 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 8 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Bash SUCCESS 14 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
Brainfuck FAILED 34 ms
C SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
C++ SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Crystal SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
CSharp SUCCESS 43 ms (Startup: 4ms, Calc: 34ms, I/O: 4ms)
D SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Dart SUCCESS 16 ms (Startup: 1ms, Calc: 12ms, I/O: 1ms)
Elixir SUCCESS 279 ms (Startup: 27ms, Calc: 222ms, I/O: 27ms)
Erlang SUCCESS 162 ms (Startup: 16ms, Calc: 129ms, I/O: 16ms)
Fortran SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Go SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Haskell SUCCESS 22 ms (Startup: 2ms, Calc: 17ms, I/O: 2ms)
Java SUCCESS 47 ms (Startup: 4ms, Calc: 37ms, I/O: 4ms)
JavaScript SUCCESS 70 ms (Startup: 7ms, Calc: 56ms, I/O: 7ms)
Julia SUCCESS 154 ms (Startup: 15ms, Calc: 123ms, I/O: 15ms)
Kotlin SUCCESS 49 ms (Startup: 4ms, Calc: 39ms, I/O: 4ms)
Lua SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Nim SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Objective-C SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Odin SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Perl SUCCESS 32 ms (Startup: 3ms, Calc: 25ms, I/O: 3ms)
PHP SUCCESS 58 ms (Startup: 5ms, Calc: 46ms, I/O: 5ms)
Python SUCCESS 36 ms (Startup: 3ms, Calc: 28ms, I/O: 3ms)
R FAILED 159 ms
Ruby FAILED 65 ms
Rust SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Scala SUCCESS 353 ms (Startup: 35ms, Calc: 282ms, I/O: 35ms)
Swift SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
TypeScript SUCCESS 1024 ms (Startup: 102ms, Calc: 819ms, I/O: 102ms)
Zig SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
C 6 0 4 0
C++ 6 0 4 0
Go 6 0 4 0
Nim 6 0 4 0
Odin 6 0 4 0
Rust 6 0 4 0
Crystal 7 0 5 0
Fortran 7 0 5 0
Objective-C 7 0 5 0
Assembly 8 0 5 0
Swift 8 0 6 0
D 11 1 8 1
Lua 11 1 8 1
Zig 11 1 8 1
Bash 14 1 11 1
Dart 16 1 12 1
Haskell 22 2 17 2
Perl 32 3 25 3
Brainfuck 34 (FAILED)
Python 36 3 28 3
CSharp 43 4 34 4
Java 47 4 37 4
Kotlin 49 4 39 4
PHP 58 5 46 5
Ruby 65 (FAILED)
JavaScript 70 7 56 7
Julia 154 15 123 15
R 159 (FAILED)
Erlang 162 16 129 16
Elixir 279 27 222 27
Scala 353 35 282 35
TypeScript 1024 102 819 102
=== Klart ===
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 1 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 27 ms (Startup: 2ms, Calc: 21ms, I/O: 2ms)
Bash SUCCESS 14 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
Brainfuck FAILED 34 ms
C SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
C++ SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Crystal SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
CSharp SUCCESS 44 ms (Startup: 4ms, Calc: 34ms, I/O: 4ms)
D SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Dart SUCCESS 17 ms (Startup: 1ms, Calc: 13ms, I/O: 1ms)
Elixir SUCCESS 281 ms (Startup: 27ms, Calc: 224ms, I/O: 27ms)
Erlang SUCCESS 121 ms (Startup: 12ms, Calc: 97ms, I/O: 12ms)
Fortran SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Go SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Haskell SUCCESS 22 ms (Startup: 2ms, Calc: 17ms, I/O: 2ms)
Java SUCCESS 41 ms (Startup: 4ms, Calc: 32ms, I/O: 4ms)
JavaScript SUCCESS 68 ms (Startup: 6ms, Calc: 54ms, I/O: 6ms)
Julia SUCCESS 147 ms (Startup: 14ms, Calc: 117ms, I/O: 14ms)
Kotlin SUCCESS 79 ms (Startup: 7ms, Calc: 63ms, I/O: 7ms)
Lua SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Nim SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Objective-C SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Odin SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Perl SUCCESS 33 ms (Startup: 3ms, Calc: 26ms, I/O: 3ms)
PHP SUCCESS 59 ms (Startup: 5ms, Calc: 47ms, I/O: 5ms)
Python SUCCESS 37 ms (Startup: 3ms, Calc: 29ms, I/O: 3ms)
R FAILED 158 ms
Ruby FAILED 65 ms
Rust SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Scala SUCCESS 400 ms (Startup: 39ms, Calc: 320ms, I/O: 39ms)
Swift SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
TypeScript SUCCESS 1062 ms (Startup: 105ms, Calc: 849ms, I/O: 105ms)
Zig SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
C 6 0 4 0
C++ 6 0 4 0
Go 6 0 4 0
Nim 6 0 4 0
Odin 6 0 4 0
Rust 6 0 4 0
Crystal 7 0 5 0
Objective-C 7 0 5 0
Fortran 8 0 6 0
Swift 8 0 6 0
D 11 1 8 1
Lua 11 1 8 1
Zig 12 1 9 1
Bash 14 1 11 1
Dart 17 1 13 1
Haskell 22 2 17 2
Assembly 27 2 21 2
Perl 33 3 26 3
Brainfuck 34 (FAILED)
Python 37 3 29 3
Java 41 4 32 4
CSharp 44 4 34 4
PHP 59 5 47 5
Ruby 65 (FAILED)
JavaScript 68 6 54 6
Kotlin 79 7 63 7
Erlang 121 12 97 12
Julia 147 14 117 14
R 158 (FAILED)
Elixir 281 27 224 27
Scala 400 39 320 39
TypeScript 1062 105 849 105
=== Klart ===
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 2000 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 9 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Bash SUCCESS 84 ms (Startup: 8ms, Calc: 67ms, I/O: 8ms)
Brainfuck FAILED 39 ms
C SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
C++ SUCCESS 15 ms (Startup: 1ms, Calc: 12ms, I/O: 1ms)
Crystal SUCCESS 9 ms (Startup: 0ms, Calc: 7ms, I/O: 0ms)
CSharp SUCCESS 48 ms (Startup: 4ms, Calc: 38ms, I/O: 4ms)
D SUCCESS 14 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
Dart SUCCESS 22 ms (Startup: 2ms, Calc: 17ms, I/O: 2ms)
Elixir SUCCESS 284 ms (Startup: 28ms, Calc: 227ms, I/O: 28ms)
Erlang SUCCESS 124 ms (Startup: 12ms, Calc: 99ms, I/O: 12ms)
Fortran SUCCESS 51 ms (Startup: 5ms, Calc: 40ms, I/O: 5ms)
Go SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Haskell SUCCESS 21 ms (Startup: 2ms, Calc: 16ms, I/O: 2ms)
Java SUCCESS 50 ms (Startup: 4ms, Calc: 39ms, I/O: 4ms)
JavaScript SUCCESS 488 ms (Startup: 48ms, Calc: 390ms, I/O: 48ms)
Julia SUCCESS 152 ms (Startup: 14ms, Calc: 121ms, I/O: 14ms)
Kotlin SUCCESS 59 ms (Startup: 5ms, Calc: 46ms, I/O: 5ms)
Lua SUCCESS 80 ms (Startup: 8ms, Calc: 64ms, I/O: 8ms)
Nim SUCCESS 27 ms (Startup: 2ms, Calc: 21ms, I/O: 2ms)
Objective-C SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Odin SUCCESS 25 ms (Startup: 2ms, Calc: 20ms, I/O: 2ms)
Perl SUCCESS 175 ms (Startup: 17ms, Calc: 139ms, I/O: 17ms)
PHP SUCCESS 70 ms (Startup: 6ms, Calc: 56ms, I/O: 6ms)
Python SUCCESS 50 ms (Startup: 5ms, Calc: 40ms, I/O: 5ms)
R FAILED 190 ms
Ruby FAILED 69 ms
Rust SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Scala SUCCESS 354 ms (Startup: 35ms, Calc: 283ms, I/O: 35ms)
Swift SUCCESS 283 ms (Startup: 28ms, Calc: 226ms, I/O: 28ms)
TypeScript SUCCESS 1382 ms (Startup: 137ms, Calc: 1105ms, I/O: 137ms)
Zig SUCCESS 19 ms (Startup: 1ms, Calc: 15ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
C 7 0 5 0
Go 8 0 6 0
Objective-C 8 0 6 0
Rust 8 0 6 0
Assembly 9 0 6 0
Crystal 9 0 7 0
D 14 1 11 1
C++ 15 1 12 1
Zig 19 1 15 1
Haskell 21 2 16 2
Dart 22 2 17 2
Odin 25 2 20 2
Nim 27 2 21 2
Brainfuck 39 (FAILED)
CSharp 48 4 38 4
Java 50 4 39 4
Python 50 5 40 5
Fortran 51 5 40 5
Kotlin 59 5 46 5
Ruby 69 (FAILED)
PHP 70 6 56 6
Lua 80 8 64 8
Bash 84 8 67 8
Erlang 124 12 99 12
Julia 152 14 121 14
Perl 175 17 139 17
R 190 (FAILED)
Swift 283 28 226 28
Elixir 284 28 227 28
Scala 354 35 283 35
JavaScript 488 48 390 48
TypeScript 1382 137 1105 137
=== Klart ===
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 2 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Bash SUCCESS 15 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
Brainfuck FAILED 33 ms
C SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
C++ SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Crystal SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
CSharp SUCCESS 42 ms (Startup: 4ms, Calc: 33ms, I/O: 4ms)
D SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Dart SUCCESS 16 ms (Startup: 1ms, Calc: 12ms, I/O: 1ms)
Elixir SUCCESS 284 ms (Startup: 27ms, Calc: 226ms, I/O: 27ms)
Erlang SUCCESS 121 ms (Startup: 12ms, Calc: 96ms, I/O: 12ms)
Fortran SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Go SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Haskell SUCCESS 20 ms (Startup: 1ms, Calc: 15ms, I/O: 1ms)
Java SUCCESS 38 ms (Startup: 3ms, Calc: 30ms, I/O: 3ms)
JavaScript SUCCESS 68 ms (Startup: 6ms, Calc: 54ms, I/O: 6ms)
Julia SUCCESS 145 ms (Startup: 14ms, Calc: 115ms, I/O: 14ms)
Kotlin SUCCESS 47 ms (Startup: 4ms, Calc: 37ms, I/O: 4ms)
Lua SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
Nim SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Objective-C SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Odin SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Perl SUCCESS 32 ms (Startup: 3ms, Calc: 25ms, I/O: 3ms)
PHP SUCCESS 58 ms (Startup: 5ms, Calc: 46ms, I/O: 5ms)
Python SUCCESS 36 ms (Startup: 3ms, Calc: 28ms, I/O: 3ms)
R FAILED 157 ms
Ruby FAILED 65 ms
Rust SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Scala SUCCESS 337 ms (Startup: 33ms, Calc: 269ms, I/O: 33ms)
Swift SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
TypeScript SUCCESS 1060 ms (Startup: 105ms, Calc: 848ms, I/O: 105ms)
Zig SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
Assembly 6 0 4 0
C 6 0 4 0
C++ 6 0 4 0
Go 6 0 4 0
Nim 6 0 4 0
Odin 6 0 4 0
Crystal 7 0 5 0
Fortran 7 0 5 0
Objective-C 7 0 5 0
Rust 7 0 5 0
Swift 8 0 6 0
D 11 1 8 1
Zig 11 1 8 1
Lua 12 1 9 1
Bash 15 1 11 1
Dart 16 1 12 1
Haskell 20 1 15 1
Perl 32 3 25 3
Brainfuck 33 (FAILED)
Python 36 3 28 3
Java 38 3 30 3
CSharp 42 4 33 4
Kotlin 47 4 37 4
PHP 58 5 46 5
Ruby 65 (FAILED)
JavaScript 68 6 54 6
Erlang 121 12 96 12
Julia 145 14 115 14
R 157 (FAILED)
Elixir 284 27 226 27
Scala 337 33 269 33
TypeScript 1060 105 848 105
=== Klart ===
+72
View File
@@ -0,0 +1,72 @@
=== Pi-beräkning med 5 decimaler (DETALJERAD ANALYS) ===
Assembly SUCCESS 9 ms (Startup: 0ms, Calc: 7ms, I/O: 0ms)
Bash SUCCESS 14 ms (Startup: 1ms, Calc: 11ms, I/O: 1ms)
Brainfuck FAILED 33 ms
C SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
C++ SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Crystal SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
CSharp SUCCESS 41 ms (Startup: 4ms, Calc: 32ms, I/O: 4ms)
D SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
Dart SUCCESS 16 ms (Startup: 1ms, Calc: 12ms, I/O: 1ms)
Elixir SUCCESS 280 ms (Startup: 27ms, Calc: 224ms, I/O: 27ms)
Erlang SUCCESS 119 ms (Startup: 11ms, Calc: 95ms, I/O: 11ms)
Fortran SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
Go SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Haskell SUCCESS 20 ms (Startup: 1ms, Calc: 16ms, I/O: 1ms)
Java SUCCESS 38 ms (Startup: 3ms, Calc: 30ms, I/O: 3ms)
JavaScript SUCCESS 67 ms (Startup: 6ms, Calc: 53ms, I/O: 6ms)
Julia SUCCESS 146 ms (Startup: 14ms, Calc: 116ms, I/O: 14ms)
Kotlin SUCCESS 54 ms (Startup: 5ms, Calc: 43ms, I/O: 5ms)
Lua SUCCESS 12 ms (Startup: 1ms, Calc: 9ms, I/O: 1ms)
Nim SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Objective-C SUCCESS 8 ms (Startup: 0ms, Calc: 6ms, I/O: 0ms)
Odin SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Perl SUCCESS 33 ms (Startup: 3ms, Calc: 26ms, I/O: 3ms)
PHP SUCCESS 58 ms (Startup: 5ms, Calc: 46ms, I/O: 5ms)
Python SUCCESS 36 ms (Startup: 3ms, Calc: 28ms, I/O: 3ms)
R FAILED 158 ms
Ruby FAILED 64 ms
Rust SUCCESS 6 ms (Startup: 0ms, Calc: 4ms, I/O: 0ms)
Scala SUCCESS 335 ms (Startup: 33ms, Calc: 268ms, I/O: 33ms)
Swift SUCCESS 7 ms (Startup: 0ms, Calc: 5ms, I/O: 0ms)
TypeScript SUCCESS 1078 ms (Startup: 107ms, Calc: 862ms, I/O: 107ms)
Zig SUCCESS 11 ms (Startup: 1ms, Calc: 8ms, I/O: 1ms)
=== RESULTAT (sorterat efter tid) ===
Språk Total Startup Calc I/O
------------------------------------------------
C 6 0 4 0
C++ 6 0 4 0
Go 6 0 4 0
Nim 6 0 4 0
Odin 6 0 4 0
Rust 6 0 4 0
Crystal 7 0 5 0
Fortran 7 0 5 0
Swift 7 0 5 0
Objective-C 8 0 6 0
Assembly 9 0 7 0
D 11 1 8 1
Zig 11 1 8 1
Lua 12 1 9 1
Bash 14 1 11 1
Dart 16 1 12 1
Haskell 20 1 16 1
Brainfuck 33 (FAILED)
Perl 33 3 26 3
Python 36 3 28 3
Java 38 3 30 3
CSharp 41 4 32 4
Kotlin 54 5 43 5
PHP 58 5 46 5
Ruby 64 (FAILED)
JavaScript 67 6 53 6
Erlang 119 11 95 11
Julia 146 14 116 14
R 158 (FAILED)
Elixir 280 27 224 27
Scala 335 33 268 33
TypeScript 1078 107 862 107
=== Klart ===
+8 -10
View File
@@ -79,23 +79,20 @@ run_program() {
local start=$(date +%s%N) local start=$(date +%s%N)
# Run program with time measurement # Run program with time measurement
result=$(/usr/bin/time -l "$@" 2>&1) local output=$(/usr/bin/time -l "$@" 2>&1)
local exit_code=$? local exit_code=$?
local end=$(date +%s%N) local end=$(date +%s%N)
local elapsed=$(( (end - start) / 1000000 )) local elapsed=$(( (end - start) / 1000000 ))
if [ $exit_code -eq 0 ]; then if [ $exit_code -eq 0 ]; then
# Get result for verification # Get result for verification (first line of output)
result=$(echo "$output" | head -n 1)
if [ "$i" -gt 1 ]; then if [ "$i" -gt 1 ]; then
# Only count runs 2-4 for averages # Only count runs 2-4 for averages
total_time=$((total_time + elapsed)) total_time=$((total_time + elapsed))
# Parse time output for phases (simplified)
local real_time=$(echo "$result" | grep "real" | awk '{print $1}')
local user_time=$(echo "$result" | grep "user" | awk '{print $3}')
local sys_time=$(echo "$result" | grep "sys" | awk '{print $5}')
# Estimate phases (simplified) # Estimate phases (simplified)
local startup=$((elapsed / 10)) # Estimate 10% startup local startup=$((elapsed / 10)) # Estimate 10% startup
local calc=$((elapsed * 8 / 10)) # Estimate 80% calculation local calc=$((elapsed * 8 / 10)) # Estimate 80% calculation
@@ -105,7 +102,7 @@ run_program() {
total_calc=$((total_calc + calc)) total_calc=$((total_calc + calc))
total_io=$((total_io + io)) total_io=$((total_io + io))
if verify "$(echo "$result" | head -n 1)" "$DECIMALS"; then if verify "$result" "$DECIMALS"; then
((success_count++)) ((success_count++))
fi fi
fi fi
@@ -165,13 +162,14 @@ run_program Swift swift/bin/print_hej "$DECIMALS"
run_program TypeScript typescript/bin/print_hej "$DECIMALS" run_program TypeScript typescript/bin/print_hej "$DECIMALS"
run_program Zig zig/bin/print_hej "$DECIMALS" run_program Zig zig/bin/print_hej "$DECIMALS"
# Sort results by time # Sort results by time (numerically)
echo "" echo ""
echo "=== RESULTAT (sorterat efter tid) ===" echo "=== RESULTAT (sorterat efter tid) ==="
printf "%-12s %8s %8s %8s %8s\n" "Språk" "Total" "Startup" "Calc" "I/O" printf "%-12s %8s %8s %8s %8s\n" "Språk" "Total" "Startup" "Calc" "I/O"
echo "------------------------------------------------" echo "------------------------------------------------"
for result in $(printf '%s\n' "${results[@]}" | sort -n); do # Sort numerically by time
printf '%s\n' "${results[@]}" | sort -n -k1 | while read result; do
time=$(echo "$result" | awk '{print $1}') time=$(echo "$result" | awk '{print $1}')
name=$(echo "$result" | awk '{print $2}') name=$(echo "$result" | awk '{print $2}')
status=$(echo "$result" | awk '{print $3}') status=$(echo "$result" | awk '{print $3}')