Kirizaki / Kirizaki/libArchStatic
Profiling and bechmark report
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
We need a profiling and benchmarking report to understand the performance and resource usage of our archive pack/unpack implementation. This will help identify bottlenecks (CPU vs I/O), validate buffer size choices, and guide optimizations.
## Tasks:
1. Run packing/unpacking on datasets with:
- Many small files (10k+ tiny text files)
- Few large files (several GB each)
- Mixed workload (typical real project directory)
2. Measure:
- Throughput (MB/s)
- CPU usage (user vs sys)
- Memory footprint (RSS)
- Disk I/O patterns (syscalls per MB, using strace -c)
3. Compare against:
- GNU tar
- BSD tar
4. Profile hotspots:
- Use perf or callgrind to identify CPU-heavy functions
- Use time -v to get resource summary
- Check behavior on:
- Small buffer sizes (4 KiB) vs large (64 KiB, 1 MB)
- Different compression levels (gzip -1 vs -9)
Document results in a markdown report (docs/Profiling.md) with graphs/tables
## Acceptance Criteria:
1. Clear report of performance characteristics
2. Evidence whether current buffer sizes (8192 write, 10240 read) are optimal
3. Identified bottlenecks (compression vs I/O)
4. Comparison table against system tar tools
5. Recommendations for possible optimizations
NOTE: Feel free to use any other tool (possible alternatives).
TBD.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the archive pack/unpack implementation and plan the listed small-file, large-file, and mixed workloads. Use time -v, strace -c, perf or callgrind, and comparisons with GNU tar and BSD tar; document throughput, resource usage, buffer and compression-level results, graphs, tables, bottlenecks, and recommendations in docs/Profiling.md.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- documentation, performance
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100