bonjour,
finalement, on peut appeler du code java à partir de windev. Voici la façon d'appeler la fonction de calcul du crible d'Eratosthene à partir de windev :
1 - voici le code source java qui permet d'être appelé à partir de windev :
il faut compiler et cela donne (comme mon projet s'appelle BiblioJava) un BiblioJava.jar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 import java.util.BitSet; public class Erato { public static int moncalcul(int N) { BitSet isPrime2 = new BitSet(N + 1); for (int i = 2; i * i <= N; i++) { if (!isPrime2.get(i)) { for (int j = i; i * j <= N; j++) { isPrime2.set(i * j); } } } int primes2 = N - 1 - isPrime2.cardinality(); return primes2; } }
2 - dans windev en initialisation il faut charger le jar par un :
3 - et voici le code qui appelle la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JavaCharge("BiblioJava.jar")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 elapsedTime est une Durée compt est un entier ChronoDébut() compt = JavaExécuteFonction("Erato","moncalcul",javaEntier,10000000) elapsedTime = ChronoFin() Memo += RC + " Résultat crible d'Eratosthene (10000000) par java : " + compt + " - temps écoulé : " + elapsedTime + " ms"
et voici ce que j'obtiens en temps écoulé :
en générant un exécutable 32 bits :
avec un appel au code java : 360 ms
avec du code windev : 7800 ms
en générant un exécutable 64 bits :
avec un appel au code java : 120 ms
avec du code windev : 8990 ms
Ami calmant J.P
Partager