IDE compiled program performance

Does an IDE compiled program perform as fast as the corresponding exe file obtained with a xojo full license?
I’m referring particularly to number crunching performance.
Thanks a lot.

The compiled program will most likely perform quicker than running in the IDE

In the IDE there is other over-head involved

Actually a compiled app with probably run faster than one in the debugger since it has no debugging informations or the ability to talk to the IDE

Thanks a lot! Is it possible to quantify how much faster? I’m asking as I was rather disappointed to find that a simple matrix diagonalization ported from VB6 took about twice as much on the xojo IDE to complete than on the old VB6 IDE. Useless to say that the code was exactly the same for VB6 and xojo as far as data types, loop counts and alike.

Not really… I would think that graphics programs would show the most variance (although my programs run “acceptable” in the IDE, and really well compiled)…

Turning off some of the error checking in the IDE might help you some.

If you want (assuming no “secrets”) you can send me the project, and I will quantify it on my machine to give you an idea

Dave that would be very nice of you. No secrets at all. Let me prepare the code and I will post you a link to download the project. Cheers

plus any instructions required to perform the test for you.

If it’s a relatively small project, I can also take a quick look to see if there are some other optimizations to help with execution speed…

I’m presently developing an arbitrary precision math module in pure Xojo code and it does some serious number crunching. Depending on what I am doing, I can see performance difference in the 2-5x range from the IDE to compiled. When LLVM becomes available this difference could be made huge (i.e. multiply it again by up to 10x).

I posted here a link to the code:

https://dl.dropboxusercontent.com/u/2287430/eigen.xojo_binary_project

It is super easy: run, click on start so that the size of the matrix is displayed, click ok, wait until a MsgBox will tell you the seconds spent to diagonalize the matrix. That’s all. On my jurassick Centrino Win7(64 bits) it takes 6.5 s to diagonalize a 100x100 matrix. On more modern PC you may want to increase the size of the matrix up to 200 (please keep in mind that the computer time grows as n^3) to get significant amount of time. It would be very nice to see the IDE and full exe times on different architectures.
Thanks to all of you for the help

on my iMac i7 under the IDE a 100x100 Matrix took 5.365452 seconds
once compiled it took 2.894418 seconds (almost 2x as fast)

did notice the time flucuates +/- a few tenths on each run

Dave, I did expect a much better improvement compared to my T8300 CPU… Anyhow the scaling is clear

200x200 took 14.575 and 7.788995

200x200 took 44.5 s on my PC

I am just about to go out for the night but was curious myself. Windows 8 top end (non-Jurassic) system:

IDE 3.62166s
Compiled: 2.128562

Only one timing run of each.

HTH

Oh and 200x200:

IDE 11.7581
Compiled: 8.032907

@Piero Ugliengo we are in the process of switching our compiler to LLVM which is an optimizing compiler. That would make a significant improvement in performance. You can see the difference if you try out your code using XojoScript as it has an option to turn on LLVM.

it is interesting that under OSX there seems to be a 2x improvement from IDE to compiled…
but under Win8 the improvement is like only 80%

Thanks Geoff, good to know. Unfortunately I’m too novice to xojo to do what you suggest…sorry
By the way, is the switching planned soon?

15" Retina Macbook Pro with 2.3 GHz Core i7: Matrix size: 200x200 : 17.03 in IDE, 10.1 in compiled app.