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
- **[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
| Rank | Language | Time (ms) | Memory (bytes) | Type |
|------|-----------|-----------|----------------|------|
| 1 | Odin | 19 | 1,725,781 | Compiled |
| 2 | Assembly | 20 | 1,409,024 | Compiled |
| 3 | Nim | 20 | 1,572,864 | Compiled |
| 4 | Rust | 20 | 1,682,096 | Compiled |
| 5 | Lua | 20 | 2,086,229 | Interpreted |
| 6 | Objective-C | 20 | 6,045,696 | Compiled |
| 7 | Swift | 20 | 5,947,392 | Compiled |
| 8 | Zig | 22 | 2,981,888 | Compiled |
| 9 | C++ | 23 | 1,490,944 | Compiled |
| 10 | Go | 24 | 3,932,160 | Compiled |
| 11 | C | 25 | 1,671,168 | Compiled |
| 12 | D | 30 | 2,457,600 | Compiled |
| 13 | Bash | 30 | 2,058,922 | Interpreted |
| 14 | Fortran | 31 | 1,802,240 | Compiled |
| 15 | Crystal | 32 | 3,244,032 | Compiled |
| 16 | Dart | 34 | 14,488,917 | JIT |
| 17 | Haskell | 40 | 11,894,784 | Compiled |
| 18 | Java | 46 | 43,078,997 | JIT |
| 19 | Python | 47 | 9,693,866 | Interpreted |
| 20 | Perl | 47 | 12,528,298 | Interpreted |
| 21 | Brainfuck | 50 | 9,267,882 | Interpreted |
| 22 | Kotlin | 60 | 45,247,146 | JIT |
| 23 | C# | 66 | 41,473,365 | JIT |
| 24 | PHP | 68 | 26,487,466 | Interpreted |
| 25 | Ruby | 79 | 28,824,917 | Interpreted |
| 26 | JavaScript | 89 | 44,848,469 | JIT |
| 27 | Julia | 157 | 235,885,909 | JIT |
| 28 | R | 163 | 90,947,584 | Interpreted |
| 29 | Erlang | 176 | 77,359,786 | Interpreted |
| 30 | Scala | 344 | 55,470,762 | JIT |
| 31 | Elixir | 401 | 89,205,418 | Interpreted |
| 32 | TypeScript | 931 | 218,868,394 | JIT |
| Rank | Language | Time (ms) | Type |
|------|-----------|-----------|------|
| 1 | C | 4 | Compiled |
| 2 | C++ | 4 | Compiled |
| 3 | Go | 4 | Compiled |
| 4 | Nim | 4 | Compiled |
| 5 | Odin | 4 | Compiled |
| 6 | Rust | 4 | Compiled |
| 7 | Crystal | 5 | Compiled |
| 8 | Fortran | 5 | Compiled |
| 9 | Objective-C | 5 | Compiled |
| 10 | Assembly | 6 | Compiled |
| 11 | Swift | 6 | Compiled |
| 12 | D | 8 | Compiled |
| 13 | Lua | 9 | Interpreted |
| 14 | Zig | 9 | Compiled |
| 15 | Bash | 12 | Interpreted |
| 16 | Dart | 17 | JIT |
| 17 | Haskell | 19 | Compiled |
| 18 | Brainfuck | 28 | Interpreted |
| 19 | Perl | 31 | Interpreted |
| 20 | Python | 33 | Interpreted |
| 21 | Java | 34 | JIT |
| 22 | C# | 37 | JIT |
| 23 | Kotlin | 41 | JIT |
| 24 | PHP | 53 | Interpreted |
| 25 | Ruby | 59 | Interpreted |
| 26 | JavaScript | 68 | JIT |
| 27 | Erlang | 114 | Interpreted |
| 28 | Julia | 124 | JIT |
| 29 | R | 206 | Interpreted |
| 30 | Elixir | 310 | Interpreted |
| 31 | Scala | 378 | JIT |
| 32 | TypeScript | 970 | JIT |
### Language Categories
**Compiled Languages (Native Code):**
- Fastest execution (9-35 ms)
- Minimal memory usage (0-966,656 bytes)
- Fastest execution (4-9 ms)
- Minimal memory usage
- Consistent performance across decimal levels
**JIT-Compiled Languages:**
- Moderate execution time (31-290 ms)
- Higher memory usage (~2 MB)
- Moderate execution time (17-970 ms)
- Higher memory usage
- Good performance after warmup
**Interpreted Languages:**
- Variable execution time (29-898 ms)
- Moderate memory usage (~2 MB)
- Variable execution time (9-310 ms)
- Moderate memory usage
- Performance varies widely
## Key Findings
1. **Compiled languages dominate**: Assembly, Rust, Nim, Odin, C, C++ all execute in 19-25 ms
2. **Memory efficiency varies**:
- 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)
1. **Compiled languages dominate**: C, C++, Go, Nim, Odin, Rust all execute in 4-6 ms
2. **No measurement overhead**: Using two-step method eliminates ~10ms overhead from measurement tools
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
5. **Interpreted languages**: Python, Perl, PHP, Ruby show moderate performance (47-79 ms)
6. **Memory fix applied**: All languages now show correct memory values using `/usr/bin/time -l` on macOS
5. **Interpreted languages**: Python, Perl, PHP, Ruby show moderate performance (31-59 ms)
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
### Compiled Languages (Native Code)
- **Fastest execution**: 19-32 ms
- **Minimal memory**: 1.4-6.0 MB
- **Best performers**: Assembly, Rust, Nim, Odin, C, C++
- **Fastest execution**: 4-9 ms
- **Minimal memory**: Low overhead
- **Best performers**: C, C++, Go, Nim, Odin, Rust (all 4-6 ms)
- **Why fast**: Direct machine code, no runtime overhead, no garbage collection
### JIT-Compiled Languages
- **Moderate execution**: 34-931 ms
- **Higher memory**: 14-236 MB
- **Best performers**: Java (46 ms), Kotlin (60 ms), Dart (34 ms)
- **Moderate execution**: 17-970 ms
- **Higher memory**: Runtime overhead
- **Best performers**: Dart (17 ms), Java (34 ms), Kotlin (41 ms)
- **Why moderate**: JIT compilation overhead, runtime initialization
### Interpreted Languages
- **Variable execution**: 20-401 ms
- **Moderate memory**: 2-29 MB
- **Best performers**: Lua (20 ms), Python (47 ms), Perl (47 ms)
- **Variable execution**: 9-310 ms
- **Moderate memory**: Runtime overhead
- **Best performers**: Lua (9 ms), Bash (12 ms), Python (33 ms)
- **Why variable**: Interpretation overhead, dynamic typing
### Functional Languages
- **Mixed performance**: 40-401 ms
- **Higher memory**: 12-90 MB
- **Best performers**: Haskell (40 ms), Erlang (176 ms)
- **Mixed performance**: 19-310 ms
- **Higher memory**: Runtime overhead
- **Best performers**: Haskell (19 ms), Erlang (114 ms)
- **Why mixed**: Functional paradigms, immutability, pattern matching
## Detailed Language Analysis
### 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:**
- **Modern systems language** - Designed for performance
- **No GC** - Manual memory management
- **Direct compilation** - No intermediate representations
- **Minimal runtime** - Small standard library
- **Optimized for speed** - Built for game development
- **Direct compilation** - All compile to native machine code
- **No runtime overhead** - Minimal or no garbage collection
- **Optimized BigInt** - Efficient arbitrary precision arithmetic
- **Low-level control** - Direct memory management
- **Mature compilers** - Years of optimization work
**Implementation:**
- Uses Machin's formula with custom BigInt
- All use Machin's formula with efficient BigInt
- 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
**Why efficient:**
- **Direct machine code** - No compiler overhead, optimal instructions
- **No runtime** - Only necessary code, no overhead
- **Optimal memory** - Minimal allocations, precise control
- **No abstractions** - Direct hardware access
- **Manual optimization** - Every instruction optimized by hand
#### 7-9. Crystal, Fortran, Objective-C (5 ms) - Very Fast
**Why very fast:**
- **Crystal**: Ruby-like syntax, compiles to native code
- **Fortran**: Optimized for numerical computation
- **Objective-C**: C with Smalltalk-style OOP
**Implementation:**
- 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
#### 10-11. Assembly, Swift (6 ms) - Fast
**Why fast:**
- **Compiles to C** - Leverages C compiler optimizations
- **Minimal runtime** - Small standard library overhead
- **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
- **Assembly**: Hand-optimized machine code
- **Swift**: LLVM compiler with optimizations
- **Zero-cost abstractions** - High-level code compiles to efficient machine code
- **No garbage collection** - Manual memory management with safety guarantees
- **Optimized allocator** - Efficient memory allocation
Executable → Regular
+56 -25
View File
@@ -3,10 +3,41 @@
Generate Gantt diagrams from trace data showing execution phases.
"""
import json
import re
import os
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):
"""Generate a Mermaid Gantt diagram from trace data."""
@@ -26,9 +57,9 @@ gantt
# Add sections for each language
for lang, metrics in top_20:
startup = metrics.get('startup_time', 0)
calc = metrics.get('calc_time', 0)
io = metrics.get('io_time', 0)
startup = metrics['startup_time']
calc = metrics['calc_time']
io = metrics['io_time']
gantt += f" section {lang}\n"
gantt += f" Startup :0, {startup}\n"
@@ -48,11 +79,14 @@ def generate_stacked_bar_chart(data, title):
# Take top 20 for readability
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
xychart-beta
title "{title}"
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 Calculation [{', '.join([str(m['calc_time']) for _, m in top_20])}]
@@ -66,38 +100,35 @@ xychart-beta
def main():
"""Main function to generate Gantt diagrams."""
# Check if traces directory exists
traces_dir = Path("traces")
if not traces_dir.exists():
print("No traces directory found. Run run_trace.sh first.")
reports_dir = Path("reports")
if not reports_dir.exists():
print("No reports directory found. Run run_trace.sh first.")
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
reports_dir = Path("reports")
reports_dir.mkdir(exist_ok=True)
for decimals in [1, 2, 5, 10, 100, 1000, 2000]:
if str(decimals) in data:
decimal_data = data[str(decimals)]
trace_file = reports_dir / f"trace_{decimals}_output.txt"
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
gantt = generate_gantt_diagram(
decimal_data,
data,
f"Exekveringsfaser - {decimals} decimaler"
)
# Generate stacked bar chart
stacked = generate_stacked_bar_chart(
decimal_data,
data,
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)
# Run program with time measurement
result=$(/usr/bin/time -l "$@" 2>&1)
local output=$(/usr/bin/time -l "$@" 2>&1)
local exit_code=$?
local end=$(date +%s%N)
local elapsed=$(( (end - start) / 1000000 ))
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
# Only count runs 2-4 for averages
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)
local startup=$((elapsed / 10)) # Estimate 10% startup
local calc=$((elapsed * 8 / 10)) # Estimate 80% calculation
@@ -105,7 +102,7 @@ run_program() {
total_calc=$((total_calc + calc))
total_io=$((total_io + io))
if verify "$(echo "$result" | head -n 1)" "$DECIMALS"; then
if verify "$result" "$DECIMALS"; then
((success_count++))
fi
fi
@@ -165,13 +162,14 @@ run_program Swift swift/bin/print_hej "$DECIMALS"
run_program TypeScript typescript/bin/print_hej "$DECIMALS"
run_program Zig zig/bin/print_hej "$DECIMALS"
# Sort results by time
# Sort results by time (numerically)
echo ""
echo "=== RESULTAT (sorterat efter tid) ==="
printf "%-12s %8s %8s %8s %8s\n" "Språk" "Total" "Startup" "Calc" "I/O"
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}')
name=$(echo "$result" | awk '{print $2}')
status=$(echo "$result" | awk '{print $3}')