Re: Meandering NVDA Miscellany (including that it's alive and well)

Tony Malykh

Hi Joseph,

Thanks for the explanation.Just out of curiosity, you compiled NVDAHelper with SSE optimization flags, right? Did you check that the compiler actually generated some SSE2 code? I'm asking because long time ago I have actually written some SSE2 assembly code for matrix multiplication, that's why I was surprised to see it here - I can't imagine NVDAHelper trying to multiply much stuff.

As for multi-processing - it makes perfect sense to do it to communicate with processes running in different architectures. But Enes was originally talking about multi-threading. I'm quite aware of green threads in Python. And yeah, I spent countless hours looking into NVDA internals too.


On 2/4/2019 3:48 PM, Joseph Lee wrote:


Regarding SSE build I produced a few years ago: it is gone now, but my reason for producing it then was to test the theory that SSE builds are faster (I got mixed responses).

In theory, use of SSE (specifically SSE2 and later) will improve performance to some degree, provided that NVDA tells processors to perform the same operation on multiple bits of data. It won’t help Python, but in C++ portion, it may work. At the moment Visual Studio compiler will generate SSE/SSE2 instructions if given a chance, although it won’t benefit Python portion of NVDA nor snapshots (useful for stable releases).

As for multithreading, multiprocessing and such: yes, NVDA will use two processes (one if you are running 32-bit Windows): the main NVDA executable (really a Python interpreter), and an architecture-specific helper executable (if you asked me last week, I would have said “a helper executable”; things have changed now, especially thanks to ARM64 support). A 32-bit program can talk to other 32-bit programs without problems; but it gets a bit complicated when talking to 64-bit programs, especially when the host machine can’t understand what NVDA is talking about – for this reason, when running NVDA on Windows 10 for ARM, you’ll need to talk to an additional intermediary: x86 emulator.

As for multithreading: you can “emulate” multithreading environment in Python; I did say “emulate” because although Python will let you run individual threads for a little bit, it is still a single-threaded interpreter unless you run your Python code inside separate Python interpreters (the overhead of doing it is operating system specific, and in Windows world, more resources must be spent on process management than thread management).

Let me know if you all have any additional questions about machine-level internals of NVDA (a tip for those wishing to optimize NVDA add-ons: just don’t do it unless you are willing to get into deeper internals, as doing so will involve hours of analysis and effort; I myself won’t optimize my own add-ons unless disassembled Python bytecode says it can benefit from it).




From: <> On Behalf Of Tony Malykh
Sent: Monday, February 4, 2019 3:10 PM
Subject: Re: [nvda] Is NVDA really dying? Can I do anything to help?


Not much point to argue with you, but:
1. Mike said 64-bit build is needed to work with 64-bit java. That's the only real argument. Performance may improve ever so slightly, or it might stay the same, or I've even seen cases when programs run slower in 64-bit mode due to higher memory consumption. In either case judging by my own experience it's not a big deal.
> joseph wrote a version of nvda with SSE2,
Show me.
3. You're confused between multi-threading and multi-processing. If you want to do multi-processing - that would require some kind of communications between processes. And worst of all - I don't see why NVDA would need multiple processes and how it would benefit from it.
In any case, trying to convince people on the Internet is a really stupid idea, so I'll probably stop here.

On 2/4/2019 2:43 PM, enes sarıbaş wrote:

I was not trying to spread panic.  Your asertions about 64 bit and SSE2 as well as multithreading are false. NVDA devs accknowledge that they do not know for  sure that switching to pure 64 bit won't improve performance, that is why they list it as a possible project that can be undertaken in google summer of code.Also, nvda does not use multithreading, in that all functions of nvda run in a single process, with the exception of the helper. Moreover, when joseph wrote a version of nvda with SSE2, people reported that it had a massive performance increase.

On 2/4/2019 10:09 PM, Tony Malykh wrote:

You are one of those people who're trying to spread the panic, aren't you?
As for 64 bit, this is not the first time on this mailing list that you're complaining about. The truth is that there is no need to switch to 64-bit as it is not likely to increase performance or support of other software. So please stop using 64-bit support as the reason for imminent decline of NVDA. NVDA devs are not going to work on this just because you want it.
In another thread on this mailing list you also mentioned that NVDA should use SSE and multithreading. That's another ridiculous statement of yours. SSE is for floating point computations and therefore it's not applicable to NVDA. Multithreading is already being used in NVDA.
So, stop complaining. and stop spreading panic.



On 2/4/2019 12:55 PM, enes sarıbaş wrote:


I will comment on this. While NVDA isn't dieing, development has certainly slowed down considerably since Jamy left the project. NVDA is falling behind jaws in adopting some newer introduced technologies, e.g, 64 bit, UIA support for office, which jaws has implemented completely for all office apps etc. Therefore the concern which was also expressed on the dev list is certainly understandable.

On 2/4/2019 8:52 PM, David Moore wrote:

This is just one issue showing that you cannot believe everything you hear.

Especially on computer groups and lists, there is a lot of fake roomers!

Fake news is getting very dangerous in every area of our lives!

We must research what we hear, and consider the source!

David Moore

David Moore


Sent from Mail for Windows 10


From: Marco Oros
Sent: Monday, February 4, 2019 12:56 AM
Subject: Re: [nvda] Is NVDA really dying? Can I do anything to help?


Thank You Joseph Lee, for Your answer.


I was also worried. There was also some alarmed message between people,

who speachs Czech and Slovak, but It was unnecessary alarm.





Join to automatically receive all group messages.