Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation independent benchmark fixtures #4

Open
jg-rp opened this issue Oct 24, 2022 · 0 comments
Open

Implementation independent benchmark fixtures #4

jg-rp opened this issue Oct 24, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@jg-rp
Copy link
Owner

jg-rp commented Oct 24, 2022

Complementing existing unit test cases, we could include, in this repository, one or more implementation agnostic benchmark fixtures for Liquid.

I'm imagining at least one holistic Liquid template fixture covering all standard Liquid features, with well-defined, static template render context data and the expected result of rendering the template. This could be both a test case and a benchmark fixture.

Smaller macro (micro?) benchmark fixtures could also be useful for assessing the performance of Liquid tag implementations. For example, a fixture that targets the {% for %} tag while minimising the use of other Liquid constructs.

I note that the reference implementation of Liquid already has a benchmark fixture, but it mocks several Shopify specific tags and filters, and includes some Ruby specific massaging of its data. Also, it has not been updated in some time, so does not cover more recent tags, like {% liquid %} and {% render %}.

All benchmark fixtures added to this repository will be done so with the understanding that they are not a replacement for real-world, application specific benchmarks, and that some micro/macro benchmarks can produce some misleading results, especially when dealing with implementation specific caches and optimizers.

@jg-rp jg-rp added the enhancement New feature or request label Oct 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant