CloudCastle Clock

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

Vergleich mit Konkurrenten

Alle folgenden Tabellen werden automatisch generiert aus ehrlichen Vergleichstests (benchmarks/compare.php) mit der GLEICHEN Operation für alle Konkurrenten, PHP 8.3.32, ohne Xdebug.

1. Funktionalität

Fähigkeit🏆 CloudCastlesymfonycarbonlcobuccibesteergebnisnew¹
PSR-20 ClockInterface (now(): DateTimeImmutable)✅✅✅✅✅✅❌
Eingefrorene Uhr für deterministische Tests✅✅✅✅✅✅❌
Mock-Uhr mit virtuellem sleep()✅✅❌❌❌❌❌
Monotone Uhr (immun gegen Sprünge der Systemzeit)✅✅❌❌❌❌❌
Zeitversatz per Dekorator (OffsetClock)✅❌❌❌❌❌❌
Zeitskalierung per Dekorator (ScaledClock)✅❌❌❌❌❌❌
Kürzung von Zeitpunkten auf eine beliebige Einheit✅❌❌❌❌❌❌
Dauer-Value-Object mit Nanosekunden-Präzision✅❌✅❌❌❌❌
Fristen mit verbleibender Zeit (Deadline)✅❌❌❌❌❌❌
Schritt- und Warteschlangen-Uhr für Szenariotests✅❌❌❌❌❌❌
Stoppuhr mit Runden im Paket enthalten✅❌❌❌❌❌❌
Günstige timestamp()/microtime()-Primitive ohne Datumsobjekte✅❌❌❌❌❌❌
An die Anwendungsuhr gebundener Zeitpunkt (DatePoint)✅✅✅❌❌❌❌
Bereichsbezogener Austausch der globalen Uhr mit automatischer Wiederherstellung✅❌✅❌❌❌❌
Adapter für beliebige PSR-20-Uhren✅✅❌❌✅❌❌
Kalenderarithmetik für Monate/Jahre mit Überlaufkontrolle (CalendarDate)✅❌✅❌❌❌❌
Lokalisiertes diffForHumans und isoFormat ohne ext-intl✅❌❌❌❌❌❌
Kalenderprädikate und -differenzen (isWeekend, diffInDays, next)✅❌✅❌❌❌❌
PHPUnit-Trait zum Mocken der Zeit (mockTime/unmockTime)✅✅❌❌❌❌❌
Echtes sleep() bei System- und monotonen Uhren✅✅❌❌❌❌❌
Beliebiges Objekt mit now()-Methode als PSR-20 umhüllen✅❌❌❌✅❌❌
Iteration über Kalenderzeiträume mit Schrittweite (CalendarPeriod)✅❌✅❌❌❌❌
Menschenlesbare Dauer (TimeSpan::forHumans)✅❌✅❌❌❌❌
Makros: Erweiterung der Datums-API ohne Vererbung✅❌✅❌❌❌❌
Gesamt🏆 248102420

2. Sicherheit und Korrektheit

Eigenschaft🏆 CloudCastlesymfonycarbonlcobuccibesteergebnisnew¹
Unveränderliche Werte (DateTimeImmutable)✅✅✅✅✅✅✅
Explizite Zeitzone (unabhängig von date.timezone)✅✅✅✅❌✅❌
Testdeterminismus ohne zwingenden globalen Zustand✅✅❌✅✅✅❌
Monotonie (robust gegen Zurückstellen der Systemuhr)✅✅❌❌❌❌❌
Typisierte Ausnahmen statt false/warning an der Eingabegrenze✅❌✅❌❌❌❌
Bereinigung feindlicher Eingaben in Ausnahmemeldungen✅❌❌❌❌❌❌
Kontrolle des Ganzzahlüberlaufs bei Dauern✅❌❌❌❌❌❌
Minimale Abhängigkeiten (≤2, ohne ICU/ext-intl)✅❌❌✅✅✅✅
Gesamt🏆 8434342

2.1. Einhaltung der Sicherheitsstandards für Composer-Pakete

StandardCloudCastlesymfonycarbonlcobuccibesteergebnis🏆 Gewinner
Sicherheitsrichtlinie (SECURITY.md oder veröffentlichter Prozess)✅✅✅❌✅✅CloudCastle, symfony, carbon, beste, ergebnis
Kontrolle bekannter Schwachstellen in Abhängigkeiten (roave/security-advisories + composer audit)✅❌❌❌❌❌CloudCastle
OpenSSF Scorecard: veröffentlichte Bewertung ≥ 7/10❌✅❌❌❌❌symfony
CWE-20: Eingabevalidierung mit typisierten Ausnahmen✅❌✅❌❌❌CloudCastle, carbon
CWE-117/CWE-150: Neutralisierung von Steuerzeichen in Fehlermeldungen✅❌❌❌❌❌CloudCastle
CWE-190: Kontrolle von Ganzzahlüberläufen✅❌❌❌❌❌CloudCastle
Lieferkette: ≤2 Laufzeitabhängigkeiten ohne Polyfills/ICU✅❌❌✅✅✅CloudCastle, lcobucci, beste, ergebnis
OpenSSF Best Practices: automatisierte Tests mit Mutationskontrolle in der CI✅❌❌✅❌✅CloudCastle, lcobucci, ergebnis
OSI-zertifizierte Lizenz in der Distribution (MIT)✅✅✅✅✅✅CloudCastle, symfony, carbon, lcobucci, beste, ergebnis
Gesamt🏆 833334CloudCastle

<sub>Quellen: SECURITY.md-Dateien in den Repositories (GitHub-API), require-dev der Distributionen auf Packagist, api.securityscorecards.dev (symfony/clock — Bewertung des Monorepos symfony/symfony; OpenSSF Scorecard bewertet nur GitHub-Projekte, daher hat CloudCastle auf GitVerse keine Bewertung — ein ehrliches Plattform-Minus); CWE-Zeilen — aus den Sicherheitstests der Pakete; symfony/clock für PHP 8.1 ist der Zweig 6.4 mit polyfill-php83.</sub>

3. Performance: now()

_Abruf des aktuellen Moments now(), 200 000 Mal (Minimum aus 15)._

LösungZeit (ms)Fazit
new¹109,7Basislinie (keine Bibliothek)
🏆 CloudCastle114,5schnellste unter den Bibliotheken
🏆 ergebnis115,6gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
🏆 lcobucci116gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
🏆 beste116,8gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
symfony154,6Konkurrent
carbon649,8Konkurrent

4. Performance: Unix-Zeitstempel

_Aktueller Unix-Zeitstempel (ganze Sekunden), 200 000 Mal._

LösungZeit (ms)Fazit
new¹16Basislinie (keine Bibliothek)
🏆 CloudCastle27,8schnellste unter den Bibliotheken
ergebnis122,3Konkurrent
lcobucci123Konkurrent
beste125,6Konkurrent
symfony164,2Konkurrent
carbon658,7Konkurrent

5. Speicherverbrauch der Bibliothek

_Reines Bibliotheks-Speicherwachstum über 200 000 now()-Aufrufe (isolierter Prozess, ohne Autoloader-Gewicht)._

LösungSpeicher (KB)Fazit
new¹1Basislinie (keine Bibliothek)
🏆 beste3leichteste unter den Bibliotheken
lcobucci5Konkurrent
ergebnis5Konkurrent
symfony30Konkurrent
CloudCastle31Konkurrent
carbon3 425Konkurrent

6. Speicherlecks

_Speicherwachstum nach dem Aufwärmen über 200 000 now()-Aufrufe (0 — keine Lecks)._

LösungSpeicher (KB)Fazit
🏆 CloudCastle0ohne Lecks
symfony0ohne Lecks
carbon0ohne Lecks
lcobucci0ohne Lecks
beste0ohne Lecks
ergebnis0ohne Lecks
new¹0Basislinie (keine Bibliothek)

7. Speicher-Spitzenwert des Prozesses

_Spitzenspeicher eines isolierten Prozesses über 200 000 now()-Aufrufe._

LösungSpeicher (KB)Fazit
🏆 CloudCastle7 035leichteste unter den Bibliotheken
🏆 symfony7 035gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
🏆 lcobucci7 035gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
🏆 beste7 035gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
🏆 ergebnis7 035gleichauf mit dem Besten (im Rahmen der Messgenauigkeit)
new¹7 035Basislinie (keine Bibliothek)
carbon10 303Konkurrent

8. Codequalität

Werkzeug🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
PHPStan✅ max + strict❌✅✅ + strict✅ + strict✅ + strict
Psalm✅ level 1✅ (monorepo)❌❌✅❌
PHPMD✅❌✅❌❌❌
PHPCS / CS-Fixer✅ PSR-12 + fixer✅ fixer✅✅❌✅ fixer
Rector✅❌❌❌❌✅
Deptrac (Architekturschichten)✅❌❌❌❌❌
Mutationstests (Infection)✅ MSI 100.0%❌❌✅❌✅
Zeilenabdeckung (live)✅ 100.0%—————
Gesamt🏆 823324

<sub>Werkzeuge der Konkurrenten laut require-dev ihrer veröffentlichten Distributionen (Stand Juli 2026); symfony/clock — laut Monorepo symfony/symfony. CloudCastle-Metriken sind Live-Ergebnisse lokaler Läufe.</sub>

¹ Die Basislinie (native Aufrufe ohne Vollständigkeit einer Lösung) dient dem Kontext und konkurriert nicht mit den Bibliotheken.

Ergebnisse, die weniger als 5% vom besten abweichen, gelten als gleich: diese Lösungen haben einen zeichengleichen heißen Pfad (new DateTimeImmutable('now', $tz)), der Unterschied entsteht dort aus Maschinenrauschen, nicht aus Code.


🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano