Softanza
DémarrerEnglish
Softanza
Systèmes et exécution

Performance

Ferme la triade OpenTelemetry, le contrat de service et l'analyse de capacité en un seul plan ; export seulement, ni stockage ni tableaux de bord.

6 Strong · 5 Solid · 1 Partial · 0 Emerging

Mesuré contre : OpenTelemetry · Prometheus · Dossiers : base/perf(s'ouvre dans un nouvel onglet) · Pour les programmeurs : la référence de ce domaine

une requête, étape par étape, mesurée par l'horloge monotone du moteur
une requête, étape par étape, mesurée par l'horloge monotone du moteur. dessiné le 2026-10-01 par le script du site tools/areas-figurative.ring, exécuté dans la bibliothèque au commit 0e72e2e2c · la source(s'ouvre dans un nouvel onglet)

Repensé depuis les premiers principes

Ce que Softanza a gardé de ce qui marche, et ce qu'elle a repensé, tel que la bibliothèque l'a écrit dans ses documents de conception et ses narrations.

La manière SoftanzaLa performance est une chose qu'un programme sait de lui-même : le moteur mesure, le code déclare le budget, et toute action corrective passe par la gouvernance.

Gardé des meilleures pratiques

  • Les données sortent dans des formats ouverts : texte Prometheus, OpenTelemetry (OTLP) et identifiants de trace W3C. Stockage et tableaux de bord restent, à dessein, à ces outils. source(s'ouvre dans un nouvel onglet)
  • L'analyse s'appuie sur les lois classiques : utilisation U = X·D et loi de Little N = X·R. Le temps de réponse est une distribution (p50, p95, p99), jamais une moyenne. source(s'ouvre dans un nouvel onglet)
  • Les durées se mesurent uniquement avec des horloges monotones, insensibles aux corrections de l'heure réseau. L'heure murale sert à dater, jamais à chronométrer. source(s'ouvre dans un nouvel onglet)

Repensé

  • Le budget de performance est du code, déclaré près de ce qu'il juge. Un objectif manqué devient un constat qui fait échouer le build, par la même porte que la sécurité. source(s'ouvre dans un nouvel onglet)
  • Observer librement, agir par la porte. Augmenter la capacité ou redémarrer est un plan gouverné ; un acteur de type modèle de langage peut l'analyser et le proposer, jamais l'exécuter. source(s'ouvre dans un nouvel onglet)
  • Chaque mesure est recoupée par une autre, indépendante : la loi de Little contre les requêtes en cours comptées. Une formule qui ne peut échouer ne prouve rien. source(s'ouvre dans un nouvel onglet)
  • Le moniteur annonce son propre coût : SelfCost() le mesure, un test échoue s'il dépasse une part fixée du travail, et des anneaux de taille fixe gardent la mémoire stable. source(s'ouvre dans un nouvel onglet)

One of the most complete and rigorous planes in the library -- P0-P11 all shipped, 366 assertions -- it closes the OTel triad (metrics + traces + logs, all in native OTLP JSON) and exposes Prometheus text, and adds SLA judgment with edge-triggered alerting, a sampling profiler, queueing-theory capacity analysis and a driven-load harness, in one coherent plane. Its real signature is measurement discipline: clocks as scopes, Windows 15.6 ms quantization handled, self-cost priced, and a rule that unmeasured is an error, never a silent pass. What it is not, by design, is the storage-and-dashboard half.

Ce qu'un artisan en fait, et ce qui se distingue

  • Closes the OTel triad (metrics + traces + logs) and exposes Prometheus text, in one plane
  • Measurement discipline: clocks as scopes, Windows 15.6 ms quantization handled, self-cost priced with its own machinery
  • Unmeasured is an error, never a silent pass
  • Queueing-theory capacity analysis with independent self-checks (utilization, Little's law)

Ce qui est dû

  • Auto-instrumentation (zero-code, opt-out rather than opt-in Observe)
  • Full trace-context propagation (baggage, async-context through reactor jobs, per-task scopes)
  • Head/tail trace sampling; in-process aggregation (PromQL-lite); native-stack profiling
  • A storage/dashboard integration story; macOS RSS; one stale CLAUDE.md metadata line (P0-P7 / 283 vs P0-P11 / 366)

Un exemple, exécuté

Un chronomètre honnête : horloge monotone, millisecondes, et la boucle qu'il a mesurée.

Softanza
oW = new stzStopwatch("loop")
oW.Start()
x = 0
for i = 1 to 200000
    x += i
next
oW.Stop()
? oW.Elapsed()
? x
Sortie
7.91
20000100000

exécuté le 2026-10-01 à 01:52 ; la valeur est en millisecondes et varie avec la charge de la machine

Les articles de ce domaine (13)

Les couloirs, un par un

Les couloirs et leurs notes sont cités tels qu'ils ont été lus à la source, le Read from the source on 2026-09-16, from a read-only main worktree.

Metrics & labeled families
Strong
Counters/gauges/timers and Prometheus-style labeled families with the child registry engine-side; cardinality bounded at birth with a counted overflow child.perf.zig Family; stzMetric, stzMetricFamily
Percentiles & histograms
Strong
Two independent engines: an O(1) log-bucket sketch and sort-exact nearest-rank over the window; histogram_sum keeps an exact lifetime sum so the mean is exact.histogram.zig, perf_series_percentile
Exposition & export
Strong
Prometheus text (PromText) and OTLP JSON for metrics, spans and logs; built-in GET /metrics + /health; pull (scrape) and push (OTLP) both present.stzOtelBatch, stzLog.OtelJson
SLA judgment & alerting
Strong
stzSla verdicts in the unified rule shape into stzRuleReport; stzPerfSentinel edge-triggered OnBreach/OnClear with a flight recorder; NOT-MEASURED is an error.stzSla, stzPerfSentinel, stzRuleReport
Measurement discipline
Strong
Clocks as scopes, Windows 15.6 ms quantization handled, SelfCost() priced (~0.03 ms), exact-transfer proven against frozen stubs, the self-check identity law.watch.zig; perf laws in CLAUDE.md
Capacity & queueing analysis
Strong
stzPerfProfile: utilization, throughput, service demand, MaxThroughput, Headroom, Bottleneck split, memory trend, Little's law with an independent self-check.stzPerfProfile
Distributed tracing
Solid
W3C traceparent spans, parent->child join, engine trace circular buffer, OTLP resourceSpans export; propagation at the HTTP seam only, one global scope, drop-oldest circular buffer.stzOtelBatch
Log<->trace correlation
Solid
Inside stzTraceScope every stzLog record stamps a traceId; OfTrace(id) recovers a trip's lines; OTLP logs export; one global scope slot.stzTraceScope, stzLog
The instrumentation bracket
Solid
Observe/ObserveRoutes wrap the appserver seam recording the well-known subjects; stzStopwatch brackets any operation; manual, no auto-instrumentation.Observe, ObserveRoutes, stzStopwatch
Profiling
Solid
stzProfiler over an engine frame stack plus a real engine sampler thread, folded flamegraph output; cooperative Enter/Leave frames, not native stack unwinding.stzProfiler
Governed tuning & load harness
Solid
stzPerfPlan: a closed catalog an LLM may propose, only an effectful actor may ExecuteOn; stzLoadDriver measured X sub-linear and R super-linear on a real fleet.stzPerfPlan, stzLoadDriver
Storage, query & dashboards
Partial
Bounded in-memory rings hold the recent window; no time-series database, no PromQL, no dashboards -- export-only by explicit design.