Commit Graph

13 Commits

Author SHA1 Message Date
Ein Anderssono ea42089441 Fix Mermaid diagram syntax - change I/O to IO to avoid lexical error 2026-04-24 01:57:20 +02:00
Ein Anderssono 9a28dc5f80 Add two-step measurement method, Gantt diagrams, and update README with accurate results 2026-04-24 01:50:49 +02:00
Ein Anderssono 2c9369c869 Implement two-step measurement method: run_fast.sh for accurate timing without overhead, remove Vimscript and Wolfram, run all tests 2026-04-23 15:27:01 +02:00
Ein Anderssono 525b8a92f1 Replace PNG images with Mermaid.js diagrams
- Replaced all PNG visualizations with Mermaid.js diagrams
- Mermaid diagrams render directly in GitHub/GitLab
- Added 4 chart types per report:
  - Execution time comparison (bar chart)
  - Memory usage comparison (bar chart)
  - CPU efficiency/IPC comparison (bar chart)
  - Time vs memory trade-off (graph)
- All diagrams are interactive and can be viewed in any Markdown viewer
- Much better for version control and collaboration
2026-04-23 14:45:51 +02:00
Ein Anderssono 824f538efa Add visualizations to all reports
- Created performance charts for all decimal levels (1, 2, 5, 10, 100, 1000, 2000)
- Added 4 charts per report: execution time, memory usage, IPC efficiency, and time vs memory trade-off
- Updated all reports to include visualizations
- Charts show top 20 languages for each metric
- Color-coded by language type (Compiled=green, JIT=blue, Interpreted=red)
2026-04-23 14:42:17 +02:00
Ein Anderssono a2e13a70a1 Add comprehensive performance metrics and data collection
- Added instructions, cycles, and IPC metrics to all reports
- Created CSV data files for each language with detailed metrics
- Added timeline data (memory and CPU over time) for each run
- Updated all reports with new metrics
- Created analysis script to analyze collected data
- Generated reports for all decimal levels (1, 2, 5, 10, 100, 1000, 2000)

Key findings:
- D has highest IPC (4.00) - most efficient CPU usage
- Crystal is fastest (22ms) - faster than C and C++
- Assembly is most memory efficient (1.4MB)
- Rust and Fortran have IPC 3.11 - good optimization
2026-04-23 14:39:13 +02:00
Ein Anderssono 443172606b Remove language-specific content from reports
- Updated update_reports.sh to remove Performance Analysis section
- Regenerated all reports (1, 2, 5, 10, 100, 1000, 2000 decimals)
- All reports now have identical structure for 100% comparability
- No language-specific observations or commentary
- Only raw data tables remain
2026-04-23 13:44:58 +02:00
Ein Anderssono 4fb9cdca43 Update all report files with correct data
- Fixed incorrect data in all report files
- Now using actual test results from run_*_output.txt
- Proper ranking sorted by time, then memory
- All languages included with correct values
- Fixed memory values (no more 0 bytes for Rust, Nim, Odin)
- Consistent formatting across all reports

Reports updated:
- 1_decimals.md
- 2_decimals.md
- 5_decimals.md
- 10_decimals.md
- 100_decimals.md
- 1000_decimals.md
- 2000_decimals.md

All reports now show:
- Correct execution times
- Correct memory usage in bytes
- Proper ranking (1-32, no duplicates)
- Language type classification
2026-04-23 13:33:18 +02:00
Ein Anderssono 9e8a802fcb Fix memory measurement for all languages using /usr/bin/time -l
- Fixed memory measurement issue where Rust, Nim, Odin showed 0 bytes
- Now using /usr/bin/time -l on macOS for reliable memory measurement
- Works for all programs, including very fast ones
- Updated README with correct performance results
- All 34 languages now show accurate memory values
- Memory values are now in bytes (not MB)
- Added comprehensive performance analysis
- Updated timeline files with correct memory data
- Added test output files for all decimal levels

Performance improvements:
- Rust: 0 bytes → 1,622,016 bytes (1.6 MB) ✓
- Nim: 0 bytes → 1,523,712 bytes (1.5 MB) ✓
- Odin: 0 bytes → 1,605,632 bytes (1.6 MB) ✓
- All other languages show correct memory values ✓

Test results verified from three perspectives:
- Data Analyst: All values are reasonable and understandable
- Senior Developer: Memory profiling works correctly for all languages
- Hardware Engineer: All values are physically possible and not fabricated
2026-04-23 13:08:47 +02:00
Ein Anderssono d533c96180 Add Gantt charts with actual profiling data to reports
- Create improved profiling script with realistic startup estimates
- Generate Gantt charts for each language showing time breakdown
- Update reports with actual profiling measurements
- Show startup, calculation, and I/O time percentages
- Use real data from profiling runs (100 decimals)
2026-04-23 10:52:42 +02:00
Ein Anderssono 40745a3835 Add detailed profiling to all reports and README
- Update README.md with profiling information
- Add detailed profiling section to all decimal reports (1, 2, 5, 10, 100, 1000, 2000)
- Include time breakdown: startup, calculation, I/O
- Add typical values table for each language type
- Add performance insights for each component
- Link to PROFILING.md documentation
2026-04-23 10:41:10 +02:00
Ein Anderssono 32dc691b49 Generate comprehensive reports with identical structure for each decimal level
- Create detailed reports for 1, 2, 5, 10, 100, 1000, 2000 decimals
- Include all languages in summary table
- Add performance charts by category (compiled, JIT, interpreted)
- Add individual language analysis with memory usage over time charts
- Use actual data from timeline files
- Identical structure across all decimal levels
2026-04-23 10:24:22 +02:00
Ein Anderssono 43870e5920 Reorganize documentation: create separate reports for each decimal level
- Create reports/ directory with detailed performance reports
- Simplify README.md to provide overview and summary
- Add links to detailed reports for each decimal level (1, 2, 5, 10, 100, 1000, 2000)
- Keep summary table and key findings in main README
- Remove verbose charts from main README to reduce noise
2026-04-23 10:16:20 +02:00