toggle quoted messageShow quoted text
Enes’s claim is understandable, considering that:
- Speech synthesizers do require resources such as CPU to translate text into speech using whatever rules manufacturers and users define.
- Most NVDA components run on top of a Python interpreter. This means in order to perform screen reading operations, Python interpreter must be willing to process screen reader instructions on top of housekeeping tasks such as garbage collection. Some NVDA components are written in C++ for faster performance and communication with apps, but still Python is invoked for housekeeping operations.
- NVDA must talk to many “people” i.e. API’s and apps at once. Although folks spent years optimizing accessibility API’s and communication between apps (in computer science, this whole thing is termed “inter-process communication”), communication with API’s and apps is still an expensive step that involves processors switching between running app and system codes. If it takes some time to send and receive messages between two 32-bit programs, imagine how long it will take for a 32-bit app such as NVDA to get useful info out of 64-bit apps (this involves formatting bits in a way that allows these two programs to eventually communicate through an intermediary called WoW64).
One important clarification: let us not equate screen readers to text-to-speech engines (don’t confuse between the two). Although TTS does contribute to screen reading performance (namely rules used to translate text into waveforms or hardware signals), what’s more important in this overall context (screen readers running on a class of hardware) is how efficient screen reading instructions can get, keeping in mind that NVDA is running on top of an interpreter. There are limits as to how power efficient an algorithm can become, as the overall limit is optimizations from the host (in NVDA’s case, not only optimizations from Windows, but also ongoing optimization work done by Python core developers and third-party library/C extension authors). Also, although not addressed here, you can’t just state that making screen readers multi-core aware will bring improvements – it depends on years of effort spent on parallelization and optimizing the screen reader to not only take advantage of at least two cores at once, but also to make itself more efficient when running as a multi-core aware application (power draw from a single core versus multiple cores does play a part here); I have learned the hard way that you will face more unexpected bugs when you make a program run with multiple threads and hardware cores.
firstname.lastname@example.org <email@example.com> On Behalf Of
Sunday, May 16, 2021 4:58 PMTo:
Re: [nvda] NVDA running on a budget laptop
I'm sorry. 6-10% CPU power is alot of system resources.
On 5/16/2021 11:50 AM, Gene wrote:
Nothing I’ve seen convinces me that NVDA itself uses a lot of computing power. nor have I seen this with screen-readers in general to the small extent I’ve checked. Its using the newer synthesizers that uses a lot of computing ;power. If you want to use the newer voices, I can’t comment on the minimum specifications to get good performance but in the old days, I had machines that today would be laughably underpowered, running Windows 95 and Windows 3.1 and Via Voice, very similar to Eloquence, ran well. This was in a 166MHZ, not GHZ, Pentium machine and in an even older and less powerful machine running Windows 3.1.
As for NVDA using a lot of computing power, if I monitor use when I’m typing text with carachter echo on in the Windows Task manager, I get low numbers. I just checked and while moving up and down the list in task manager, then pressing f5 to refresh the screen, I get a 6 percent CPU reading. When typing in this e-mail message, alt tabbing immediately to the task manager and refreshing the screen, I get a 10 percent usage reading.
I’m not saying there won’t be variations, but those figures are close to what I generally get when I test doing these things.
And I haven’t seen complaints about the performance of NVDA from people using tablets.
Sent: Sunday, May 16, 2021 7:20 AM
Subject: Re: [nvda] NVDA running on a budget laptop
I would do a minimum of 8gb of ram, and a current gen i5/r5. That is as low as you should go. Even with those specs, NVDA is heavy on CPU usage.
On 5/15/2021 7:36 PM, Brian Vogel wrote:
Personally, I would not even consider running Windows 10 with less than 8 GB of RAM. Nor would I consider a Celeron processor, for anything, these days.
I'd invest a bit more for additional memory and a better processor. You might also consider a refurbished business-class laptop, which can be had at very reasonable prices (or at least could prior to the pandemic - everything's getting more expensive as supply is constrained).
Brian - Windows 10 Pro, 64-Bit, Version 20H2, Build 19042
Always remember others may hate you but those who hate you don't win unless you hate them. And then you destroy yourself.
~ Richard M. Nixon