Oxygene Performance?


(wuping) #1

I use Delphi but heard good stories about Oxygene. So this might be a dummy question: Will Oxygene generate faster code than Delphi “native code”? Or, in other words, does Oxygene have some magic compiler switches to have faster code?

I ask this because I do a lot of scientific simulation code so if Oxygene has better performant compiler, then it is a big plus to consider.


(marc hoffman) #2

Hi,

it’s hard to answer a question like this definitive without knowing more about the exact code, because a lot of how modern code performs well or badly really depends on how it’s written. Every compiler, and every platform, can run certain code bad, and other code well.

In the past, a lot of bad information was going around in Delphi circles about bad performance of .NET because it is “managed”, which many people painted to mean the same as “interpreted” (it doesn’t), and these days, even .NET code, when written well, performs at the same level as similar code written in a compiler that compiles “natively” (because, in the end, .NET code also gets compiled and run. natively as well — in fact, because its compiled JIT, it can be optimized even better to the actual target machine, in some cases).

Oxygene of course (these days) can target both .NET and native (“on the same conceptual level as Delphi”) code or Windows (and other platforms). So answering your question in detail would also depend on whether you’re planning to use Oxygene on .NET or natively via our “Island” platform (you can read more on that here).

But in either case, I’d expect you should get top notch performance out of Oxygene, as the compiler optimizes quite well. What’s more we’d be very happy to hear your feedback on actual performance of the code you end up writing (especially on the native side) and we’d be more than willing and happy to apply that feedback towards future performance improvements (which is more that can be said about Delphi, which’s compile last has seen (minor) improvements around the turn of the millennium ;).

IOW, even though we don’t have any official comparison to share, for one, I’d expect Oxygene/native to be faster than Delphi just by the very nature of it being a much more modern compiler than Delphi’s 20-year-old-and-hardly-touched-redently dcc.exe, and for another, we’d actually be willing to make the improvements if you find any problems or candidates for streaming, while Embarcadero neither will, nor could if they wanted _ if that makes sense?

yours,
marc


(wuping) #3

Thank you for the heads up. Does Oxygene native have any UI library like VCL?


(marc hoffman) #4

Our main focus for native Oxygene right now is command line tools, servers and algorithmic code. But we have stuff things in the work for UI, long term, including basic VCL compatibility (see https://blogs.remobjects.com/2018/08/30/the-delphi-vcl-comes-to-oxygene/), and more.

Note that you can also mix native/Island code with UI created using .NET (WinForms or WPF), which would allow you to create your performance critical scientific algorithms I’m native code, but create the GUI using the rich capabilities of .NET. (and again, worth stressing here: you might even find that the same algorithms compiled for .NET are just as efficient, too).

You can also mix Island code into an existing Delphi GUI app as well.

Both of these scenarios are handled by our Hydra framework; and if you’re coming from Delphi, you might be interested in our special http://escapefromdelphi.com offer, where you essentially get Hydra for free when purchasing Oxygene or the full Elements.

yours,
marc


(wuping) #5

Thank you again.

Is Oxygene/Island ABI compatible with C and C++ code?


(marc hoffman) #6

it’s compatible with C, yes. it currently does not support C++’s class model.