GitXplorerGitXplorer
a

swift-string-processing-benchmarks

public
4 stars
2 forks
1 issues

Commits

List of commits on branch main.
Unverified
ee0e498cfa33e92cf8e8ccc1a09050e2a32c1a43

Move over remainder of regex benchmarks

nnatecook1000 committed 4 months ago
Unverified
d9ba4cb8c378f789d189edf768e01ff38a9dc51f

Move over a bunch of regex benchmarks

nnatecook1000 committed 4 months ago
Unverified
4b150b38ee6dde031f82a031bff4c36887181cae

Add another small string benchmark

nnatecook1000 committed 4 months ago
Unverified
4df790b3b2ad569e8eb29cc4a4582bfe5b717616

Exclude baselines from repository

nnatecook1000 committed 5 months ago
Unverified
807c34c7c689b849b0249da6fc6da6e7af59e47a

Add additional string benchmarks

nnatecook1000 committed 5 months ago
Unverified
37c7fea104ad8783cbafd588a196cf93e322f3d5

Update README with usage notes

nnatecook1000 committed 5 months ago

README

The README file for this repository.

_StringProcessing Benchmarks

This package is used to benchmark the Regex matching and string searching algorithms implemented in the https://github.com/apple/swift-experimental-string-processing/ package.

Usage

  1. The swift-experimental-string-processing repository is defined as a local reference, so you can update that as befits your testing needs, or point to a different location.

  2. Install jemalloc via brew install jemalloc, or whatever method makes sense for you.

  3. Run the benchmarks with this command, substituting your own toolchain identifier (found in the toolchain's Info.plist):

$ xcrun --toolchain org.swift.59202403071a swift package -c release --allow-writing-to-package-directory benchmark

Two unfortunate notes about the current setup:

  • Saving baselines doesn't work for me (Nate) for some reason -- you should be able to save benchmark output by adding baseline update BASELINE_NAME to the command above, but it appears to have no effect. As a workaround, you can run the benchmarks twice and manually compare the output.

  • Compounding matters, the benchmark only successfully builds when built from a clean state, perhaps due to the presence of _StringProcessing symbols in both the stdlib and the imported package.