Kirizaki / Kirizaki/libArchStatic

Profiling and bechmark report

Open
#11 0 comments 0 reactions 0 assignees View on GitHub
documentation
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.