Lazarus

Programming => Operating Systems => Topic started by: Gizmo on January 26, 2016, 10:42:25 am

Title: How many of you still actively develop 32 bit versions of your programs?
Post by: Gizmo on January 26, 2016, 10:42:25 am
Hi

I have a program that I compile as 32-bit. It doesn't need the 64-bit functionality particularly and by compiling as 32-bit I ensure all users can run it (on Linux, I do provide both 32 and 64 bit versions to prevent dependancy problems). But a user recently a reported a bug to me that highlighted an issue for my program being compiled as a 32-bit exe when run on 64 bit OSes. It's a rare problem but it relates to files in the Windows\System32 folder (here is more details if you're interested : http://sourceforge.net/p/quickhash/tickets/17/)

It made me wonder whether I may as well simply stop creating a 32-bit version all together. I sat and thought about how many 32 bit users there are these days. I did some Googling and read that 98% of current OSes run 64-bit. I don't know how accurate that is, but given that most (nearly all) new computers these days ship with 64-bit, and many folks have used 64 bit for the last few years, it wouldn't surprise me.

My question is how many of you still actively develop 32 bit versions of your programs?
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: marcov on January 26, 2016, 10:48:09 am
I still use 32-bit for everything, at work, and at home.

There are two exceptions, both at work. One is a service (that has to run on a 64-bit system), one is an application on the drawing table only that will need really a lot of memory access.

Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Graeme on January 26, 2016, 11:30:40 am
Seeing that FPC makes it so easy, I still produce 32-bit and 64-bit binaries of all my applications. That way I cover all bases. My development workstation is 64-bit though, but I have many development VM's that are 32-bit too.

As MarcoV said, when it comes to service applications or shell extensions under Windows, then you must produce binaries for the specific Windows bit size. But other than that, most people seem pretty happy running 32-bit Windows applications on 64-bit Windows.

Under Linux and FreeBSD, it seems most people prefer to run a binary that matches their OS.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: dogriz on January 26, 2016, 11:39:51 am
Linux machines 64-bit only (except RaspberryPi)
Windows machines 32-bit only
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Eugene Loza on January 26, 2016, 11:55:59 am
My computer at work is still i386 (Debian Jessie 32bit) :)
And yes, under Windows 64 bit - I compile 32 bit (no need for greater memory support yet).
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: JD on January 26, 2016, 01:28:43 pm
I also develop 32 bit versions of my programs because some of my users still use 32 bit Windows. However, my development machines are all 64 bit. I've been thinking of adding 64 bit versions but I haven't seen the absolute need to do so.

JD
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Leledumbo on January 26, 2016, 01:44:48 pm
I only develop on 64-bit, but always provided 32-bit binaries. I ensure my code will work on both platforms.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: balazsszekely on January 26, 2016, 01:45:14 pm
Same here, mostly 32 bit apps.  WoW is doing a great job, no need to switch yet. In most cases the benefits would be infinitesimal anyway.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: garlar27 on January 26, 2016, 03:48:32 pm
Mostly 32 bits, 64 bits for services and modules on servers.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: ArtLogi on January 26, 2016, 04:57:59 pm
As a regular computer user I wonder what are the benefits of the 64-bit applications anyway, only things I can imagine are design/dev softwares, video editing and use, Heavy image softwares, top of the line games.

Yes I run 64-bit system with over 4Gb of ram (which go to OS anyway  ::)), but I don't know if there is any real reason ... I doubt there is none. Autocad R13, did run just fine and did do pretty much same tasks back in the P1 what ACAD16 do and Word is doing same things as it did do somewhere back in 2002.. Both are only suffering from poor modern UI.

My old mother would still be satisfied email and news reader with 16-bit Windows 3.11 and happy writer with WordPerfect 5.1 runnning some age old 486 if those would still be supported and site design would still be done with some mindset as back then.

Even if I'm somekind of nerd myself I really do not see any benefits most of these hype things, what they seem to add is clutter, dirt and my workload learning to do the same shit with different creaming.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: jack616 on May 23, 2016, 03:33:04 pm
A late comment but since it came up here just yesterday
I re-installed a game machine yesterday on win7-64 and added far cry (1)
Just for the hell of it I ran the benchmark then installed its 64 bit upgrade
and did the same.
There was no frame rate difference whatsoever on the game.

On the other hand I normally compile to 64bit for myself but all other appropriate applications
I do come in 32 and 64 bit flavours on both windoze and linux.
Not for any reason I know of - just to avoid things I don't know about.

Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: linuxfan on May 23, 2016, 06:57:56 pm
32 bit machines seem to me more equilibrated.
64 bits are a waste of memory in many (not all) cases; probably 90% of programs run slightly better in 32 bits than in 64 bits version. And furthermore, a 32 bit program runs everywhere. So I stick to 32 bits as much as I can.

But soon all the machines and all the software will be 64 bits. Ok, the transition will be very smooth.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: LacaK on May 23, 2016, 07:17:06 pm
In work my development machine is 64 bit Windows, but target is 32 bit because we still have old Windows XP and 7 32 bit
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: zeljko on May 23, 2016, 08:29:28 pm
Still heavy deploying 32bit since many users have 32bit OS (linux/windows), but all new users gets 64bit ... so 32bit is still pretty important for me.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: dirkmswt on July 31, 2016, 09:43:09 pm
I develop for both,it works on both and it gives User where don't seit to new OS fast and XP is one oft the most used under Windows and for some Programms you need no 64 Bit,32Bit need less Raum an Processor Power and for a use of a Notebook need defact less Power.If you want 3D and Calculation to much higher Values its best at 64Bit but for a App which calculates with normal Values and dös Print etc its not the best to sell on one Version.I develop for some Platform with 32 and 64 Solutions for Companys since more than 20 Years ago and for Carbon which works full its only 32Bit but its a fine old and works fine this Time and Cocoa is unstable but Carbon can import some nice things from  :)
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: guest58172 on August 01, 2016, 09:16:15 am
probably 90% of programs run slightly better in 32 bits than in 64 bits version.

Curiously it should be the opposite. More memory is a thing but also the 64 bit ABI is better

But of course the compiler must take advantage of that.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Thaddy on August 01, 2016, 12:41:57 pm
32 bit machines seem to me more equilibrated.
64 bits are a waste of memory in many (not all) cases; probably 90% of programs run slightly better in 32 bits than in 64 bits version. And furthermore, a 32 bit program runs everywhere. So I stick to 32 bits as much as I can.

But soon all the machines and all the software will be 64 bits. Ok, the transition will be very smooth.

That's not the case (that 32bit runs better). That depends hugely on application and you should test.
Furthermore I see more and more clients that do not accept 32 bit code on Windows platforms because the security model is hugely different. Or they don't want to maintain a 32bit sub-system.
I myself work mostly on server systems. In that case - and this is not supposed (as your 32bit) but a fact - 99% is 64bit code. Some client code is delivered in 32bit, though
Note that from Windows 10, the speed penalty is often the other way around, so 64 bit is better because by now it is better optimized. Most benchmarks still refer to older windows versions.

Under Linux I solely use 64bit if available so I can't comment on that. I use 32 bit on Raspbian, though, but that is hobby.

There are also the inevitables: shell extensions and drivers and services
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: marcov on August 01, 2016, 01:36:46 pm
probably 90% of programs run slightly better in 32 bits than in 64 bits version.

Curiously it should be the opposite. More memory is a thing but also the 64 bit ABI is better
  • more sratch registers (theorically less usage of temporaries)
  • loading memory to xmm register is easier

But of course the compiler must take advantage of that.

True, but the average size of data increases due larger pointer and the alignment issues resulting from that. Also, on windows there is no red zone which makes leaf procedures have more overhead.

From work I know that floating point gets slower in x64 on Delphi (which uses sse fpu), up to 40% and more in some routines.  Those routines use goniometric and other special functions though. IIRC I checked with FPC, and there was the same pattern
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Thaddy on August 01, 2016, 05:30:54 pm

True, but the average size of data increases due larger pointer and the alignment issues resulting from that. Also, on windows there is no red zone which makes leaf procedures have more overhead.

From work I know that floating point gets slower in x64 on Delphi (which uses sse fpu), up to 40% and more in some routines.  Those routines use goniometric and other special functions though. IIRC I checked with FPC, and there was the same pattern

I noticed that too with intensive floating point math. I still use 32 bit code for some applications, also because of precision issues..
What I doubt is that on current processors alignment is still an issue. AVX+ is advertised as alignment agnostic. As far as I can see that seems indeed the case.

What I can measure, however, is that on modern Intels 64 bit code has much higher memory throughput than 32 bit code when correctly optimized. For non- float computation intensive code that is much more important.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: marcov on August 01, 2016, 06:17:03 pm
What I can measure, however, is that on modern Intels 64 bit code has much higher memory throughput than 32 bit code when correctly optimized. For non- float computation intensive code that is much more important.

Could you explain that? The memory bandwidth is between cache and memory, so I don't know what 32 vs 64-bit apps have to do with it.   I would expect avx code to have the same speed.

Moreover, only the size of the load and stores matter, and general purpose code won't suddenly start using 64-bit loads except for pointer loads (which are only 64-bit because of 64-bit anyway, so no netto gain).

The only exception that I know is int64 using encryption code like AES  where the algorithm is specified in 64-bit.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: rick2691 on August 12, 2016, 07:31:28 pm
I use Windows XP Pro (32 bit). I program for my personal business use. I quit marketing my software many years ago. All of my personal software is designed for XP. I build ActiveX systems that do special things with that software.

For myself, later Windows versions are only offering an expense to me. I don't want to spend the money. I only want to work and earn money.

I haven't investigated it, but I expect that there is a large populace outside of the US that are operating as I am. They can't afford the Windows, and I am told that Windows XP is being pirated for sale in 3rd World areas. Moreover, among common people that are here in the US, I don't know anyone that is happy with the new Windows versions.

It will be a long time, if ever, before I will abandon XP and 32 bit. It's a work horse.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Thaddy on August 12, 2016, 07:55:56 pm
Could you explain that? The memory bandwidth is between cache and memory, so I don't know what 32 vs 64-bit apps have to do with it.   I would expect avx code to have the same speed.
The only exception that I know is int64 using encryption code like AES  where the algorithm is specified in 64-bit.
I don't exactly know yet. But I get 20% to up to 30% speed increase on large moves and copy operations. You should see that too, because it is really significant.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: marcov on August 12, 2016, 11:23:29 pm
Could you explain that? The memory bandwidth is between cache and memory, so I don't know what 32 vs 64-bit apps have to do with it.   I would expect avx code to have the same speed.
The only exception that I know is int64 using encryption code like AES  where the algorithm is specified in 64-bit.
I don't exactly know yet. But I get 20% to up to 30% speed increase on large moves and copy operations. You should see that too, because it is really significant.

That is probably that the runtime routines can use SSE2 by default on x86_64 (as minimal subset)
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: abouchez on September 02, 2016, 09:51:13 pm
Even if more registers are available under x64, in practice x86 may be faster due to the size of pointers.

Under 64-bit, a pointer uses twice as memory as with 32-bit.
All pointers within an object, for instance, will need doubled size in memory.
So it is pretty usual to have the CPU L1 cache been exhausted faster under 64-bit.
And, as a result, 32-bit may be faster.

This is why the x32 architecture was implemented - only under Linux.
See https://en.wikipedia.org/wiki/X32_ABI
Sadly, x32 is not supported by FPC now, AFAIR.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: Akira1364 on September 18, 2016, 02:50:11 am
Haven't owned a 32-bit machine since late 2007 here, and I'm not sure why anyone would choose to do so (for home use, that is.) Having to maintain a 32-bit application that you've written for legacy hardware is an entirely different issue that I totally understand.

I mean, I can't speak for Mac or Nix/Nux users and I don't know exactly what it is like where you all live but here in Ontario, Canada it hasn't actually been possible to buy a 32-bit (again, Windows) machine since 2009 or so. I personally have always assembled my own PCs from separately purchased parts, but even all mass-produced pre-builts have been 64-bit by default since around that time. They never even bothered to advertise 32-bit versus 64-bit, as the assumption (for anyone who actually thought about it) would always have been that it was 64-bit.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: JuhaManninen on September 18, 2016, 12:38:12 pm
Haven't owned a 32-bit machine since late 2007 here, and I'm not sure why anyone would choose to do so (for home use, that is.)

Yesterday I ordered a new 32-bit computer for myself:
 https://mqmaker.com/doc/introduction-to-miqi/
Ok, it is not a Windows PC but I will use it as a PC with some Linux desktop system, just like I use my current 64-bit main computer ASRock Beebox.
 http://www.asrock.com/microsite/beebox/
The Beebox still feels like a dream machine. It is fast enough for anything I do. The passive cooling is always sufficient also with an added Crucial SSD (despite the opposite claims by some people). Just amazing!

The MiQi card computer has Rockchip RK3288 and its performance looks impressive, too. I expect it to be nearly as fast as the Intel N3000.
In both the efficiency (computing power / electric power consumption) is super.
I know 64-bit is the future also in ARM world but it will take a little more time.

I may be obsessed of not wanting cooling fans in my computers any more. Cell phones don't have them, tablets don't have them, yet they are very capable computers. Why should a PC have a buzzing propeller?
I also often think how the current buzzing computers will look like in future, say 30 years from now. They will look very primitive!

[Edit]
MiQi board is so good is it recommended for build farms:
 http://wiki.ant-computing.com/Choosing_a_processor_for_a_build_farm#Introducing_a_new_player_-_MiQi_board_-_2016.2F07.2F26
With proper kernel settings it is faster than Odroid-C2 although C2 is a 64-bit system.
One of MiQi's secrets is a dual port 64-bit memory bus. Often the memory bus speed chokes down a multi-core CPU. Not with MiQi!
In a build farm both price and electric power consumption matter. MiQi apparently shines there.
The Rockchip RK3288 has 4 Cortex A17 cores. A17 is the most optimized ARM 32-bit design. It has the same performance as Cortex A15 but with better power efficiency.
Title: Re: How many of you still actively develop 32 bit versions of your programs?
Post by: marcov on September 18, 2016, 01:11:27 pm
Sadly, x32 is not supported by FPC now, AFAIR.

Afaik it simply didn't catch on.
TinyPortal © 2005-2018