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

Optional logging of time since input when speaking. #9167

Merged
merged 3 commits into from Jan 21, 2019

Conversation

Projects
None yet
4 participants
@jcsteh
Copy link
Contributor

commented Jan 17, 2019

Link to issue number:

None.

Summary of the issue:

When working on performance improvements or identifying performance regressions, it is useful to be able to measure perceived responsiveness. A starting point is to measure the time between input from the user (e.g. a key press) and when text is spoken. We already log times, so it's already possible to do this by subtracting the input log time from the speech log time, but that's fairly tedious at scale, especially given that there can be several log entries between the two relevant entries, the times are logged as full times (not just seconds) and the log times are at the end of the line. We want to make measuring perceived performance as simple as possible.

Description of how this pull request fixes the issue:

This PR introduces optional logging of time since input when text is sent to to be spoken. It can be enabled in the debugLog section of the config using the timeSinceInput setting. It is logged at level IO if this setting is enabled.

Note that the last input time is not reset after the time since input is logged. That is, if a key press generates two spoken messages, the second will show the time since the last key press (>= the time since input for the first message). This can be useful if the first message isn't the primary information the user cares about or if, for example, speak command keys is enabled (in which case the first message will be the key being spoken).

Testing performed:

Tested cursoring through the NVDA menu with the debugLog -> timeSinceInput setting set to False. Verified that time since input was not logged.

With the setting enabled, tested cursoring through the NVDA menu, using object navigation in Gmail, pressing control+o to bring up the Open dialog in Notepad, moving by line and character in Notepad. Verified that the time since input logged seemed proportional to my perception of performance in these cases.

Known issues with pull request:

None known.

Change log entry:

Changes for Developers:
- NVDA can log the time since input when text is spoken, which helps in measuring perceived responsiveness. This can be enabled by setting the timeSinceInput setting to True in the debugLog section of the NVDA configuration.

Optional logging of time since input when speaking.
This allows for easy measurement of perceived responsiveness.
It can be enabled in the debugLog section of the config using the timeSinceInput setting.
It is logged at level IO if this setting is enabled.

@jcsteh jcsteh requested a review from michaelDCurran Jan 17, 2019

Show resolved Hide resolved source/inputCore.py Outdated

@michaelDCurran michaelDCurran merged commit a33f71c into nvaccess:master Jan 21, 2019

1 check passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details

@nvaccessAuto nvaccessAuto added this to the 2019.1 milestone Jan 21, 2019

@jcsteh jcsteh deleted the jcsteh:timeSinceInput branch Jan 21, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.