summaryrefslogtreecommitdiff
path: root/scripts/pbo.sh
AgeCommit message (Collapse)Author
2025-06-16Refactor PBO to PGO with true Profile-Guided OptimizationPaul Buetow
- Rename PBO (Profile-Based) to PGO (Performance Guided Optimization) - Implement true PGO using Go's -pgo compiler flag - Refactor script into maintainable functions: - setup_environment(): Initialize paths and variables - create_test_file(): Generate 100MB test file with 1M lines - build_baseline(): Build version without PGO optimizations - collect_training_data(): Generate CPU profiles for training - build_pgo_optimized(): Build with -pgo flag using training profile - run_pgo_performance_test(): Profile PGO-optimized version - run_performance_comparison(): Compare baseline vs PGO performance - generate_detailed_analysis(): Create comprehensive profile analysis - cleanup(): Remove temporary files - show_summary(): Display results and process summary - Update Makefile target from 'pbo' to 'pgo' - Update .gitignore patterns for PGO temporary files - Update CLAUDE.md documentation for new PGO process - Remove git stash dependencies for simpler automation - Generate before/after performance comparison reports 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16Organize PBO files in scripts directory and add .gitignore entriesPaul Buetow
- Modify pbo.sh to store all temporary files in scripts/ directory - Update path handling with proper SCRIPT_DIR and PROJECT_ROOT variables - Add comprehensive .gitignore entries for PBO temporary files: - scripts/pbo_*.prof (CPU and memory profiles) - scripts/pbo_report.txt (analysis report) - scripts/test_100mb.txt (test data file) - Update CLAUDE.md documentation to reflect new file organization - Keep project root directory clean by organizing all PBO artifacts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16Implement Profile-Based Optimization (PBO) automation with 39.9% performance ↵Paul Buetow
improvement - Add comprehensive PBO script (scripts/pbo.sh) for automated performance analysis - Implement timer allocation reduction using reusable timers (chunkedreader.go, stats.go, baseclient.go) - Optimize I/O operations with pre-allocated buffers and bulk writes (chunkedreader.go) - Enhance memory allocation patterns with improved buffer pooling - Add CPU and memory profiling support to dgrep command - Update Makefile with clean PBO target calling scripts/pbo.sh - Add PBO documentation to CLAUDE.md Performance improvements: - 39.9% faster execution time (2.918s → 1.753s average) - 38% reduction in CPU samples (3.04s → 1.87s) - Reduced byte-by-byte operations from 21.71% to 8.56% CPU usage - Eliminated repeated timer allocations across all components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>