News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

stopping support of Windows 7

Started by shankle, February 22, 2019, 07:33:32 AM

Previous topic - Next topic

TimoVJL

Visual Studio is still only a 32-bit application ?
May the source be with you

aw27

I am still receiving updates for XP  :biggrin:


jj2007

Quote from: hutch-- on February 23, 2019, 11:09:55 AM
I am much of the view that 64 bit is the future but 32 bit will remain in the present for a very long time.

Agreed. 64-bit is better for a handful of applications that need to address gigabytes of memory - but that's a very rare case. Speed-wise, 32-bit code is often better, see 64-bit vs 32-bit benchmarks

In a handful of cases, the availability of more registers with a larger width can speed up an algo.
I many cases, the longer instructions can empty the instruction cache and thus slow down the algo.

People tend to compare the 32->64 transition with the 16->32 transition, but:

memory    16:640kB  32:2048MB  64:^^^ (much higher but irrelevant)
speed     16:1      32:6       64:6 (absolutely no improvement, often slower)


In short: 16->32 was a quantum leap, both speed- and memory-wise, but 32->64 is no leap at all, unless you are specialising in applications that regularly need more than 2048 megabytes of memory. Open task manager, sort by working set:
152 MB thunderbird.exe
101 MB whatsapp.exe
52 MB slimjet.exe
23 MB explorer.exe


None of them needs 2048 MB. And btw, 13 64-bit processes running, but 24 are still 32-bit.

P.S., I forgot to mention one real gain from the 32->64 transition: Hundreds of Millions of users could be convinced that they absolutely needed new hardware 8)

aw27

Quote from: jj2007 on February 23, 2019, 08:39:49 PM
Agreed. 64-bit is better for a handful of applications that need to address gigabytes of memory - but that's a very rare case. Speed-wise, 32-bit code is often better, see
This is an urban myth, you can't find any serious proof, you do not link to anything that proves it, and every evidence shows that 64-bit is almost always much faster, sometimes multiple times faster.  :shock:


hutch--

I just shoved a test together and with as close as possible, duplicate the code in both. Results are ambiguous on this middle aged Haswell. You have to unzip this test and run the batch file "testme.bat". The code design of the pair of algos should favour 32 bit code.

aw27

Quote from: hutch-- on February 23, 2019, 11:57:52 PM
I just shoved a test together and with as close as possible, duplicate the code in both. Results are ambiguous on this middle aged Haswell. You have to unzip this test and run the batch file "testme.bat". The code design of the pair of algos should favour 32 bit code.

It is difficult to find an example where 32-bit performs a little better than 64-bit.
This is exactly the mentioned case of:

However, the other side of the move to the 64-bit version is a two-time increase of the size of pointers and some other data types, which might result in an increased demand of the software to the system's physical memory. In some cases, it might slow down the speed of a 64-bit application in comparison to a 32-bit one. However, it occurs rarely and such cases are usually determined by an unsuccessful choice of the format in which data are stored in the program.



felipe

i think i have not found a difference in speed with both (32 and 64 bits). but i think that microsoft will still maintain 32 bits support for a while. anyway, 64 bits is a lot of fun to program... :t

TimoVJL

M$ don't care about a the speed.
For example: to compile + link uasm with native tools
32bit 15 s
64bit 20 s
May the source be with you

aw27

There was that guy that has done a routine with a superior compiler. The code was very likely great but could not be zipped to less than 500 KB and uploaded to the site.
If I remember well, I produced the same thing with crappy Visual Studio in less than 3000 bytes. <sighs>

Vortex

Hi AW,

You probably turned off the C run-time library of Visual Studio making bigger the executables. A very good method.

jj2007

Quote from: hutch-- on February 23, 2019, 11:57:52 PM
I just shoved a test together and with as close as possible, duplicate the code in both. Results are ambiguous on this middle aged Haswell. You have to unzip this test and run the batch file "testme.bat". The code design of the pair of algos should favour 32 bit code.

Core i5, Win7-64:
1591 ms duration 32 bit
1576 ms duration 64 bit
1575 ms duration 32 bit
1576 ms duration 64 bit
1576 ms duration 32 bit
1575 ms duration 64 bit
1576 ms duration 32 bit
1575 ms duration 64 bit
1576 ms duration 32 bit
1575 ms duration 64 bit
1576 ms duration 32 bit
1575 ms duration 64 bit
1592 ms duration 32 bit
1591 ms duration 64 bit
1576 ms duration 32 bit
1576 ms duration 64 bit

hutch--

A very long time ago (1994) I was still writing DOS 16 bit apps and for a while with early 32 bit, I could get faster apps (usually small tools) using 16 bit DOS but it was only a matter of time until 32 bit was well enough understood that the DOS apps had run out of puff. Something that lingered for a long time after was the number of people who never made the transition and kept writing 16 bit DOS apps.

Win32 has had a good run for over 20 years but it is in its twilight and nothing much new will ever be available and it still faces the memory limit when apps just keep needing to deal with ever larger data, more graphics and the like. If you have ever tried to work on 32 gig of memory and use algorithms from the win32 era, you will sit there waiting with the Ho Hum, Pigs bum, Why is it sooooooo sloooooow !

Win64 is the future and if you don't adapt you will become eligible for the "Old Fart's Club", just like the guys who kept writing 16 bit DOS apps.  :P

jj2007

a) Win64 isn't faster
b) I have yet to see one app on my PC that needs more than 2gigs of address space

If that makes me an old fart, so be it :P

TimoVJL

If even M$ have difficulties with x64, they even publish slow application using it, so who to trust ?
The WOW64 slows only 2-4% win32 applications, but it takes 1 GB disk space.
Win64 applications are usually 20% bigger, but speed is usually same.
Most growing area is ARM64? Cheaper and need less power ?
For M$ WinRT is important ?
What is UCRT speed effect ?
May the source be with you