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

[RFC] Profiling process on symfony core #32113

Closed
noniagriconomie opened this issue Jun 20, 2019 · 7 comments
Closed

[RFC] Profiling process on symfony core #32113

noniagriconomie opened this issue Jun 20, 2019 · 7 comments

Comments

@noniagriconomie
Copy link
Contributor

noniagriconomie commented Jun 20, 2019

Hi

I recently saw this one #31991

I would like to know if there is a “profiling process” in the sf core codebase by the core team to monitor/track the feature/bug fix additon

I would really know if there is one, how it is working

if none exists, would it be great to have like an online hackathon for this?

thank you

EDIT : fyi i have openend this discussion first on slack, where @javiereguiluz suggested me to postback it here as an issue, here is the recap #32113 (comment)

thank you

@noniagriconomie noniagriconomie changed the title [RFC] [RFC] Profiling process on symfony core Jun 20, 2019
@noniagriconomie
Copy link
Contributor Author

[2019-06-20]
javiereguiluz [10 h 07]
There is not an automated process to track the performance improvement/regression of each pull request
the main reason is that it's difficult and very time consuming to create the needed performance benchmarks. Each component (and each feature inside each component) would need a dedicated benchmark
For example, you make a minor change in OptionsResolver component ... a generic benchmark using forms, etc. says that your change worsened performance a lot, and your PR is rejected.  However, a benchmark related to Forms is testing forms, optionsresolver and lots of other things. The 5 ms added in the benchmark by your pull request, are in fact randomly added by some unrelated forms feature
So, you need a dedicated synthetic benchmark for each feature of each component

javiereguiluz [10 h 17]
(in any case, we could create some benchmarks for features where performance is ultra critical, such as getting services/params from container, things related to request, etc.)

Noni [10 h 25]
@javiereguiluz thank you for your time and answer
in fact i was talking about your second post yes, mainly core components
like http request/response (parameter bags, factories)
dependencie injection, console, event dispatcher, and some others key component

also what do you think of proposing such improvement in the software release process ?
obviously not in an automated way on the PR, but in a post merge process ? in preparation for LTS for example

the community could of course do this as well, but maybe need some documentation on using blackfire or other tooling code :visage_légèrement_souriant:

anyway, thank you !

javiereguiluz [10 h 28]
Personally I think it's a reasonable proposal ... but I don't know what would the Symfony Core think about this. So, would you be willing to create an issue at https://github.com/symfony/symfony/issues explaining briefly this proposal and see what happens? Thanks!

Noni [10 h 31]
lets do this :visage_légèrement_souriant:

@javiereguiluz
Copy link
Member

The summary of the proposal:

Could we create some benchmarks for some performance-critical features ... and run those benchmarks as part of the release process ... to ensure that new versions don't introduce performance regressions?

@noniagriconomie
Copy link
Contributor Author

@javiereguiluz as well as maybe propose some hackathon/ documentation on how to profile symfony for the community?
i mean, there are 2 things actually: feature and bug, so is there someone/something who/which unsure both are ok in regard of the perf, etc

@nicolas-grekas
Copy link
Member

nicolas-grekas commented Jul 30, 2019

How actionable is this issue?
If anyone thinks it is, please submit a PR.
Otherwise, I'd bet this will be still open in a few years :)

@noniagriconomie
Copy link
Contributor Author

Hi @nicolas-grekas, thank you for taking time reading this.

The main idea behind my issue is how symfony core team ensures that there are no performances/regressions etc when developping feature/component/patch/bug?

also for communitiy, it would be valueable to have a sub part in the documentation of contributing to show how to use blackfire to compare/ensure the developement, wdyt?

@noniagriconomie
Copy link
Contributor Author

Hi @nicolas-grekas again,

As the sf4.4 lts is soon to be released, i make a friendly ping

I do not think it is a question of « actionable issue and PR submiting »

My initial point was mainly on the code base addition process, maintenance process etc

Of course there are plenty of benchmarks on the web, just wanted to know if internally sf core team deal with it to unsure the proper level of feature addition and code performance in its global state

Thank you

@nicolas-grekas
Copy link
Member

nicolas-grekas commented Nov 9, 2019

The core team is a group of benevolent ppl that are driven by their personal interest for the work that happens here. If you want to be sure this moves forward in any way, you could be the one doing so!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants