What makes Xojo fat

I believe she was :slight_smile:

Indeed efficiency, which encompasses not waisting precious resources would that be CPU or memory, is important. In that respect, I believe comparatives Sam Rowlands posted above place Xojo amongst the reasonably thrifty crowd, not that far from Xcode.

I ran another quick test with Xojo on Mac and used Activity Monitor to look at a small project memory usage. Upon start it takes 7 MB. After filling a listbox with about 500 records, it jumps to 10.10 MB. Then it goes back down to a stable 9.3 MB. After a while, it goes down to 6.7 MB and 3 Threads (the app does not use programming threads ?).

The app size is 10.4 MB, so apparently all is not uploaded.

So apart from raw disk space weight of the app, an important factor seems to be managed by the system itself : how much RAM and CPU is devoted to the app as a process.

I do not have time to bench the sameHello World in all the languages listed above, but I bet Xojo occupies a honorable place as a respectful user of resources.

It is my understanding that at runtime the main executable gets loaded into RAM. Which makes me glad I don’t use QT, as a simple Hello World app, takes at least 50mb of RAM!

Using PowerBasic and a simple “Hello World” generates an exe file with the size of 47 KB. It speaks for itself

Is the Hello World application you are referring to using a Windows user interface ? From their site it seems PB is not. If so, then a very compact executable seems in order, as PB does not carry the heavy weight of a framework.

Xojo, for a Hello World console program on Mac, generates a 668 K executable, and carries a 2 MB framework lib. That is considerably less than the usual 6 - 7 MB. So the GUI weighs about 4-5 MB more.

I just looked at the content of the /bin folder. Most Unix commands programs range in less than 20 KB…

Hey guys, 1998 wants its thread back!

Seriously, does a few MBs matter these days? I guess it’s fine, if this is a discussion born out of technical curiosity, but I can’t think of many real-world situations where it matters anymore. Xojo is a RAD tool, producing native UIs; that costs a few MB.

It used to be something that was discussed endlessly, in the era of dial-up Internet and floppy disks but these days I’ve entire JPEG images that are bigger than a lot of my Xojo-made apps!

I must admit that I was initially shocked when the Windows 8.1 upgrade was a 1.5GB download. But then I did the math and it didn’t seem so bad.

As I like to point out to my users that insist on un-installing last year’s version to try to save some disk space, “In-A-Gadda-Da-Vida.mp3” is a bigger hit to their hard drive.

For a “Hello World” example, it might seem bloated, but that’s hardly a real world experience. Doubling the number of code lines doesn’t double the footprint of the app, so if you have to compare it to VB or Xcode, it should be using a realistic, fairly complex app, more like tens of thousands of code lines. That would make the framework a much smaller percentage of the final app and give a better judgement of the actual footprint.
My current project is, at this moment, around 50k lines, and the compiled app weighs in at approximately 26Mb, including hundreds of (small) icons and graphic pieces.

Are you trying to say your users are as old as I am are not tech savy? :wink:

I remember hearing that song a lot my freshman year in high school.

  • Karen

I once remarked to a user that I was surprised that some of them could even get the computer turned on everyday. He responded, “Why do you think I keep my computer turned on all the time?”

Yes, it’s using Windows UI. Without it the size is 7 kb.

OK. So it must be using exclusively the Windows API then.

On windows a packer like UPX can reduce the lib and exe size tremendously. The 22mb webkit dll file alone drops to about 8mb.

Yes it is. It works well for what it does. But using it made me so happy to switch to RB 5.5.

Be careful (with that axe, Eugene): some hardware companies refine their power if the hardware detect a “feature comparator software is running”. So, make another try avoiding “Hello” in the string to display.

Also, try to use a loop, a conditional branch and txwo or three other tricks.

Then, you may get a more useful response.

Some of the above: ;-:slight_smile:

Uhhm when talking about PowerBasic, I have to admit that their compiler is indeed fast and powerful. I was grown up with Turbo-Basic (Borland) followed by Power Basic. I was was deeply impressed about speed, langauge and of course the size of executables. I think they have had some very able guys who’ve done a good job in assembler.

When switching to Windows they have missed the track. Their DLL Compiler or Windows Compiler could not match the rapid development focus Visual Basic or Turbo Pascal for Win aka. Delphi have had.

Someone told me ones it is possible to compress an .app file (and I do not mean zip, rar, dmg, …) to make it smaller.
So it still was an .app you could double click on and the app launches.

Not sure how though… :slight_smile:

[quote=100279:@Christoph De Vocht]Someone told me ones it is possible to compress an .app file (and I do not mean zip, rar, dmg, …) to make it smaller.
So it still was an .app you could double click on and the app launches.

Not sure how though… :)[/quote]

There was such a Dos program wonder in the 80’s which did that by compressing the executable with a Lempel-Ziv algorithm, and added a bootstrap to the code. When launched, the code was expanded in memory and run normally.

I am not aware of such thing for Windows or Mac today. It would probably break code signature, and anyway, would consume memory and RAM the same way after expansion. The only benefit would be for distribution, maybe ?

[quote=99795:@Sam Rowlands]Out of all the third party toolkits that I’ve come across on the Mac, Xojo is the most efficient (in terms of total package size). Here’s what I’ve discovered, in weight order (heaviest first).

…//…
• Lazarus is way bigger (a simple app is 27mb).
…//…[/quote]

I think you must have left the debug info in there, you choose a different option for a release compilation and that dramatically shrinks the executable.

For tiny, fast executables PureBasic is hard to beat but you have to live without objects.

Having said that I don’t think application size is really much of an issue anymore, hardware is cheap and downloads are fast so what the hey…?