I have a benchmark code to check and compare evolution and differences between languages and versions, and I noticed a slowdown in 64bits release-compiled windows binary (have’nt checked 32bits yet) from 2017r3 to 2018r1.
The code is mostly this, where “number” is a window property and “n” the method argument (integer):
[code]For x = 1 To n
xx = xx
For y = x To n
yy = xx + yy
For z = y To n
If yy = z*z Then
number = number + 1
result = result + “[”+Str(x)+","+Str(y)+","+Str(z)+"]"
end
Next
Next
next
Return result[/code]
Suboptimal algorithm and long string concatenation are intentional.
I’m not complaining the thing is slow, but that it got slower with the latest release… more than 20 times slower with n=500 (about 800ms vs 30, both compiled with aggressive otpimization level).
Interesting. I have a copy of my M_Crypto app compiled with some older version of Xojo and when I compare the results of the stress test on Scrypt (an intentionally slow algorithm), the results are within a second of each other at around 21s.
Yes Kem, it’s a (Windows) desktop app.
Sadly I can’t check the command line, as I don’t have a Pro licence.
(I only purchased a Lite/Windows to evaluate the product)
The CL project is here if someone want to give it a try, or send me a compiled executable from both Xojo versions.
Thank you already to Greg and Kem for their kindness and willingness to help.
It should be faster regarding pure maths, string handling, … because of LLVM6. If I am not mistaken there was someone who posted benchmarks that showed it was much faster.
Regarding drawing speed, Windows builds are now very very slow compared to 2017R3. The flickering fix has a huge side effect on this. The mean reason why I do not build with 2018R1 for Windows.
[quote=383741:@Renaud GOMBERT WEBPORTAGE]Thanks a lot Greg, but no luck here… I already had this pragma (and a few others) set on both compilers.
#If Not DebugBuild
#Pragma BackgroundTasks False
#Pragma BoundsChecking False
#Pragma AutoWaitCursor False
#Pragma StackOverflowchecking False
#Pragma NilObjectChecking False
#EndIf[/quote]
And theyre set in the method where youre having trouble?
Found de benchmark:
It seems only string manipulation is faster.
2017R2:
Math (long integer) , 2000.0
Math (double precision) , 1355.0
Math (transcendental) , 1076.6
Math (scientific mix) , 1236.0
Math (composite score) , 1416.9
Math (long integer) , 2000.0
Math (double precision) , 1299.9
Math (transcendental) , 1076.8
Math (scientific mix) , 1235.4
Math (composite score) , 1403.0
Now that I purchased a Pro license I can test the command line version as well, and the result is the same.
The same code takes either 30-40ms or ~900ms depending on the release (both 64bits, Windows, aggessive optimizations).