Hi,
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).
Cheers,
Joseph
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.
2.
> 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.
--Tony
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:
enes
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.
--Tony
On 2/4/2019 12:55 PM, enes sarıbaş
wrote:
hi,
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
To: nvda@nvda.groups.io
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.