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

extphprs / ext-php-rs
34%
master: 34%

Build:
Build:
LAST BUILD BRANCH: feat/zero-alloc-fast-path
DEFAULT BRANCH: master
Repo Added 29 Oct 2025 05:59AM UTC
Token CvHPgXXNm1kARD3rjzqEku0MO8X3o5Xn7 regen
Build 911 Last
Files 92
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

LAST BUILD ON BRANCH feat/zero-alloc-fast-path
branch: feat/zero-alloc-fast-path
CHANGE BRANCH
x
Reset
Sync Branches
  • feat/zero-alloc-fast-path
  • 102_refs
  • 138_inheritance
  • 173_simple_extends_and_implements
  • 176_getter_test
  • 182_objects_in_props
  • 184_missing_property_types_in_stubs
  • 186_stubs_constants
  • 191_zend_callable
  • 199_union_intersection_dnf
  • 237_zval_flags
  • 252_static_props_and_methods
  • 310_performance
  • 325_static_str
  • 369_better_stubs
  • 424_zval_heap_corruption
  • 492_lit_suffixes_in_defaults
  • 493_feat_sets_in_arguments
  • 499_document_superglobals
  • 502_returning_self
  • 508_php_write
  • 515_ref_mutability
  • 518_cargo_php_install
  • 522_indexmap
  • 523_custom_allocator_and_stubs
  • 525_zend_ht_entry
  • 536_identifiers
  • 537_zend_bailout
  • 538_nullable_param
  • 590_interfaces
  • 599-add-performance-test-infrastructure
  • abstract_methods
  • add-grpc-php-rs
  • add-sapi-send-headers
  • add-sapi-zts-test
  • cargo_watch
  • chore/add-coc
  • chore/bump-edition-2024
  • chore/cargo-php-stubs-tests
  • chore/context7
  • chore/php-8-5
  • chore/php-86-nightly
  • ci/musl
  • ci/zts-embed
  • customize-guide-logo
  • dependabot/cargo/convert_case-0.10.0
  • dependabot/cargo/convert_case-0.11.0
  • dependabot/cargo/convert_case-0.9.0
  • dependabot/cargo/darling-0.23
  • dependabot/cargo/libloading-0.9
  • dependabot/cargo/zip-7.0
  • dependabot/cargo/zip-8.0
  • dependabot/github_actions/JamesIves/github-pages-deploy-action-4.7.4
  • dependabot/github_actions/JamesIves/github-pages-deploy-action-4.7.6
  • dependabot/github_actions/JamesIves/github-pages-deploy-action-4.8.0
  • dependabot/github_actions/actions/cache-5
  • dependabot/github_actions/actions/checkout-6
  • dependabot/github_actions/docker/build-push-action-7
  • dependabot/github_actions/docker/setup-buildx-action-4
  • docs/move-showcase-to-awesome
  • embed-zts
  • feat/embed-php-code
  • feat/error-observer
  • feat/interface_impl
  • feat/observer-api
  • feat/zend-extension
  • feat_immutable_empty_array
  • feat_zval_coercion
  • fix-valid-method-name
  • fix/bencher-host
  • fix/binary-return-memory-leak
  • fix/cargo-php-install-musl
  • fix/clang-arm64-preserve-none
  • fix/clippy--
  • fix/clippy-1-93-0
  • fix/clippy-hasher
  • fix/clippy-rust-1-91
  • fix/cloning-class
  • fix/deploy-doc
  • fix/disable-zts-embed
  • fix/mock-unint
  • fix/musl-8-5-build
  • fix/parking-lot-min-version
  • fix/releaze-plz-workflow
  • fix/releaze-plz-workflow-permission
  • fix/segfault-empy-array
  • fix/use-fork-bindgen
  • fix/windows-bindgen-nommx
  • fix/windows-dev-pack
  • fix_prop_visibility
  • fix_stub_gen
  • hotload
  • json_serializable
  • lazy
  • master
  • named_arguments
  • patch-1
  • readonly_class
  • release-plz-2025-10-29T06-23-17Z
  • release-plz-2025-10-29T13-44-17Z
  • release-plz-trigger
  • release-plz-trigger-v2
  • release-plz-trigger-v3
  • remove-php80-testing
  • showcase
  • smartstring
  • trusted-publishing

26 Mar 2026 07:51PM UTC coverage: 34.063% (-1.4%) from 35.42%
23614889641

Pull #699

github

ptondereau
perf(macros): zero-alloc fast path for #[php_function] codegen

Bypass ArgParser for non-variadic functions. The macro now generates
direct zval reads from the call frame via pointer arithmetic instead
of building ArgParser with Vec/String heap allocations on every call.

Profiling shows 3.1x fewer instructions per function call (1,209 → 390)
by eliminating 4-6 heap allocations that were the dominant cost.

Variadic functions fall back to the existing ArgParser path unchanged.

Refs: #310
Pull Request #699: perf(macros): zero-alloc fast path for #[php_function] codegen

1 of 166 new or added lines in 2 files covered. (0.6%)

30 existing lines in 3 files now uncovered.

2211 of 6491 relevant lines covered (34.06%)

22.66 hits per line

Relevant lines Covered
Build:
Build:
6491 RELEVANT LINES 2211 COVERED LINES
22.66 HITS PER LINE
Source Files on feat/zero-alloc-fast-path
  • Tree
  • List 92
  • Changed 5
  • Source Changed 3
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
23614889641 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... Pull #699 26 Mar 2026 07:54PM UTC ptondereau github
34.06
23614891300 feat/zero-alloc-fast-path Merge 5b02f8d6d into 139f812b5 Pull #699 26 Mar 2026 07:54PM UTC web-flow github
34.06
23614605724 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... Pull #699 26 Mar 2026 07:48PM UTC ptondereau github
34.07
23614178706 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... Pull #699 26 Mar 2026 07:38PM UTC ptondereau github
34.07
23613924701 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... Pull #699 26 Mar 2026 07:32PM UTC ptondereau github
34.12
23613926947 feat/zero-alloc-fast-path Merge 3a9b35928 into 139f812b5 Pull #699 26 Mar 2026 07:32PM UTC web-flow github
34.12
23613745408 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... Pull #699 26 Mar 2026 07:27PM UTC ptondereau github
34.12
23613692313 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... push 26 Mar 2026 07:26PM UTC ptondereau github
34.12
23613694534 feat/zero-alloc-fast-path Merge 055cd12bd into 139f812b5 Pull #699 26 Mar 2026 07:26PM UTC web-flow github
34.12
23613318066 feat/zero-alloc-fast-path perf(macros): zero-alloc fast path for #[php_function] codegen Bypass ArgParser for non-variadic functions. The macro now generates direct zval reads from the call frame via pointer arithmetic instead of building ArgParser with Vec/String heap al... Pull #699 26 Mar 2026 07:18PM UTC ptondereau github
34.34
See All Builds (794)

Badge your Repo: ext-php-rs

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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