Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Feature for Timer to measure callable performance #6321
Feature for Timer to measure callable performance #6321
Changes from 9 commits
bf7c6bc
ba1cc5c
22194d0
3dbcc7f
838995b
a47411b
9603cea
66d271c
70e5e64
be61a5d
b5d5591
0a032d1
5512618
9a0ad26
4a122f3
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a question. If by mistake I made the callable throw an exception, then how can I get the elapsed time since
$this->stop($name)
will not be called? Should the invocation of the callable be wrapped in atry-finally
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If an exception is thrown and you don't catch it, then I think you might have other problems than worrying about the time stoppage.
But you also have a point. It does not handle the case of purposely catching exceptions for error handling.
@kenjis shall we cover this case as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if an exception is thrown after
$benchmark->start()
or in$iterator->run()
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For
$iterator->run()
, nothing is caught internally. It would not record anything in the report and would go out of the method, ignoring all follow up Closures.For
$benchmark->start()
, you would need to callstop()
inside thecatch
orfinally
block.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need
try-finally
.An exception should be thrown in an exceptional case, and not recoverable.
Normally, a developer would modify the code to prevent the exception from occurring.
If a developer really wants to know the elapsed time when an exception is thrown, they can catch and measure it by themselves.