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

extphprs / ext-php-rs / 24425467643 / 1
66%
master: 66%

Build:
DEFAULT BRANCH: master
Ran 14 Apr 2026 10:14PM UTC
Files 95
Run time 3s
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

14 Apr 2026 10:11PM UTC coverage: 66.091% (-0.1%) from 66.211%
24425467643.1

push

github

web-flow
perf: cache property lookups across repeated accesses (#726)

When PHP reads or writes an object property (e.g. `$obj->name`), ext-php-rs
previously searched through all registered properties by name on every single
access. In a loop hitting the same property 100k times, that same search ran
100k times.

PHP provides a per-opcode "cache slot" mechanism to avoid this. On the first
access, we now store the resolved property descriptor pointer in the cache
slot. On all subsequent accesses to the same property on the same class, we
skip the search entirely and read the cached pointer directly -- a single
pointer comparison instead of string conversions and linear scans.

Applied to all three property handlers: read, write, and isset/exists.

Benchmarks (callgrind, 100k iterations):
  - Property reads:  235M -> 93.5M instructions (-60%)
  - Property writes: 220M -> 75.7M instructions (-66%)

8426 of 12749 relevant lines covered (66.09%)

33.3 hits per line

Source Files on job 24425467643.1
  • Tree
  • List 95
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 24425467643
  • a6598dcb on github
  • Prev Job for on master (#24422162052.1)
  • Next Job for on master (#24468898292.1)
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