• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / goro / 26000271584
13%

Build:
DEFAULT BRANCH: master
Ran 17 May 2026 07:20PM UTC
Jobs 1
Files 398
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 May 2026 07:18PM UTC coverage: 12.122% (+0.003%) from 12.119%
26000271584

push

github

MagicalTux
perf: don't Dup hashtable values during FuncContext.Release (bug60598)

Release iterates the function's locals to call DecRef on objects.
The old loop used ZIterator.Current(), which Dups the value before
returning it. For array values (e.g. \$containers brought in via
\`global \$containers\`), that Dup goes through ZVal.Dup → ZHashTable.Dup,
marking the array CoW. Every subsequent SetString on that array then
triggers doCopy.

bug60598 creates 10000 objects in a loop where each __construct does
\`\$containers[hash] = \$this\` and each __destruct does
\`\$containers[hash] = NULL\`. With the Dup on Release, every one of
those 20000 SetString calls did an O(N) doCopy — runtime was O(N²)
and dominated the 15s timeout (40% in pprof, 11.5s wall time locally).

Switching to NewIterator().IterateRaw(), which calls CurrentRef and
hands back the stored ZVal pointer untouched, drops the wall time
from 11.5s to 0.5s — a 22× speedup. We only inspect the value's type
and DecRef it; no mutation, no sharing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

2 of 2 new or added lines in 1 file covered. (100.0%)

14051 of 115910 relevant lines covered (12.12%)

2456.53 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26000271584.1 17 May 2026 07:20PM UTC 398
12.12
GitHub Action Run
Source Files on build 26000271584
  • Tree
  • List 398
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26000271584
  • eeb6fd41 on github
  • Prev Build on master (#25828828512)
  • Next Build on master (#26000405383)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc