Skip to content

Tags: hyperized/benchmark

Tags

v1.1.0

Toggle v1.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Tune/cycle counts & refresh UI (#37)

* Tune cycle counts to reduce total benchmark time from ~19s to ~6s

Lower defaults for JSON (9999→1000), Hashing (99999→9999), and
Serialization (9999→2000) to keep each module under ~2s while still
producing meaningful timings.

* Redesign HTML dashboard with dark theme and polished styling

Dark navy background, cyan accents, green monospace values, hover
effects on cards/rows/badges, refined typography with JetBrains Mono,
and subtle header glow line.

v1.0.0

Toggle v1.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Refactor for PHP 8.4 and above (#36)

* Add dev tooling and update dependencies for PHP 8.4+

Upgrade to PHP-DI 7, Symfony 7, adbario 3. Add PHPStan (level 8),
PHP-CS-Fixer (PER-CS2.0), and GitHub Actions CI workflow.

* Modernize core utilities and config for PHP 8.4+

Typed properties, constructor promotion, strict_types, readonly.
Replace opendir/readdir with RecursiveDirectoryIterator. Update
Symfony 7 FileLoader signatures. Remove Table and Visual classes.

* Add Result DTOs for benchmark data

Readonly DTOs implementing JsonSerializable for PHP, CPU, Disk,
MySQL, and aggregate BenchmarkResult.

* Refactor modules to return typed Result objects

Modules no longer render output. Each implements BenchmarkModuleInterface
with isEnabled() and a typed run() method. Add OutputMode enum for
CLI/HTML detection.

* Add CLI and HTML renderers

CliRenderer with ANSI colors and Unicode box-drawing tables.
HtmlRenderer with standalone styled HTML dashboard and responsive
CSS grid layout.

* Add JSON report system

Save timestamped JSON reports to reports/ on each benchmark run.

* Rewrite orchestrator and entry point

Benchmark.php orchestrates modules, builds results, saves reports,
and dispatches to the appropriate renderer. Auto-detects output mode
from SAPI with config override support.

* Update README for new architecture

Document output modes, report system, and configuration options.

* Fix Disk I/O card not spanning full width in HTML output

* Add Memory benchmark module

Tests allocation speed for array fill, array sort, string concat,
object creation, array map, and array merge. Reports both execution
time and peak memory usage per operation.

* Fix memory benchmark reporting 0 bytes for most operations

Use memory_reset_peak_usage() and memory_get_peak_usage() instead
of memory_get_usage(true) which reports OS-level allocations in
large chunks and misses reused memory.

* Add Result DTOs for Network, JSON, Regex, and File Read modules

* Add Network, JSON, Regex, and File Read benchmark modules

Network: DNS resolution and TCP connection latency to configurable hosts.
JSON: encode/decode across small, medium, and large payloads.
Regex: match and replace across 10 pattern types.
File Read: sequential reads across 1KB to 4MB file sizes.

* Add rendering for new modules and switch all timings to milliseconds

* Wire new modules into orchestrator and config

* Add Result DTOs for Serialization, Hashing, Encryption, Function Overhead, Type Casting, Autoloading, and Compression

* Add Serialization, Hashing, Encryption, Function Overhead, Type Casting, Object Instantiation, and Compression modules

Serialization: serialize vs json_encode vs var_export, with igbinary/msgpack if available.
Hashing: md5, sha1, sha256, sha512, xxh3, crc32, hmac-sha256, bcrypt, argon2id.
Encryption: AES-128/256-CBC/GCM, ChaCha20-Poly1305 encrypt and decrypt.
Function Overhead: named function, closure, first-class callable, static/instance method, arrow function.
Type Casting: int/string/float/bool conversions and intval().
Object Instantiation: stdClass, DateTime, DateTimeImmutable, SplStack, SplPriorityQueue, ArrayObject.
Compression: gzip, zlib, deflate with brotli/lzf if available. Reports time and compression ratio.
Also reduces network connection timeout from 5s to 2s.

* Add rendering for new benchmark modules in CLI and HTML

* Wire new modules into orchestrator and config

* Update README with full module list, example output, and config reference

* Add CLI progress indicator during benchmark execution

Shows [1/15] Running Module... on a single updating line so the user
knows work is in progress. Clears the line before rendering results.
Only displayed in CLI mode.

* Add color to CLI progress indicator