Accueil → WEBDEV 27 → Loop performance issues
Loop performance issues
Débuté par JumslaMatesane, 28 nov. 2022 07:19 - 1 réponse
Membre enregistré
3 messages
Posté le 28 novembre 2022 - 07:19
I was facing performance issues with a simple WinDev application with a couple of nested 'for' loops that iterate about 7 million times.

This simple application took around 30 seconds to finish in WinDev but only about 10 milliseconds in Java or C++ (yes, I am sure it's the same app).

After many tries I just made a simple 'for' loop to iterate 180 million times in both Java and WinDev and I am now concerned about the general performance of WinDev. This is the simple program:

dtStartDate = SysDateTime()
myCount is int = 0
mySize is int = 180000000
FOR i = 1 _TO_ mySize
dtFinalDate = SysDateTime()
dDiferenciaCalculada = dtFinalDate - dtStartDate
UpdateDebugOutput("time: " + dDiferenciaCalculada..InMilliseconds + "; myCount: " + myCount)
In my computer this 'for' loop takes around 5000 milliseconds to complete in Windev but only 60 milliseconds in Java.

Is there something I'm doing wrong?

Thank you very much.

--- UPDATE 20170524 ---

The real application I was testing is next:

WinDev app: https://www.dropbox.com/s/3vm0yrfcb3wc46r/TestProject.zip…

Java app: https://www.dropbox.com/s/j896r3pl5kh2iit/playground_java.zip…

It's a simple app that reads a file, makes some basic calculation and fills some objects of an array with that data. The WindDev app is taking around 27 seconds and the Java app only a few milliseconds and I don't know how to speed up the process in WinDev.

Could you propose some alternatives to my approach?
Membre enregistré
3 messages
Posté le 26 décembre 2022 - 10:23
Windev is not the fastest, and by far. But you don't choose Windev because of this. The utilisation of Parallel functions could clearly speed up your program in this case.

My bad, Windev follows more or less the C# language evolutions but they didn't implement the C# Parallel.For. If you really want to speed up your work and you work on Windows only you can use a .Net library which do the dirty work of your function and use the Parallel.For that you call from your application. Windev works pretty smoothly with .Net Library /https://chatrandom.download.

And of course I haven't share the correct link : http://doc.windev.com/en-US/…