[Squeak-fr] Squeak et Java, objectif applications d'entreprise
Christophe Allegrini
christophe.allegrini at birdtechnology.net
Mar 2 Nov 16:39:37 CET 2004
Bonjour à tous,
Squeak et Java, une collaboration fructueuse.
Voici un exemple élémentaire des avantages à utiliser deux langages et un middleware
plutôt qu'un seul langage.
L'exemple se veut le plus simple possible afin de se concentrer sur l'approche en terme
d'architecture et non en terme d'algorithme.
Le programme consiste en deus itérations imbriquées avec incrémentation d'une variable
de type Long.
Voici le programme complet en Java :
long x = 0;
long timeStart = 0;
timeStart = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 100000000; j++) {
x = x + 1;
}
}
timeStart = System.currentTimeMillis() - timeStart;
System.out.println(new Long(timeStart).toString());
System.out.println(new Long(x).toString());
Le temps d'exécution est de 487 secondes.
En Squeak l'équivalent est :
Time millisecondsToRun: [
| x |
x := 0 .
1000 timesRepeat: [
100000000 timesRepeat: [ x := x + 1 ] ] ].
Je n'ai pas eu la patience d'attendre, ce genre de "calcul" n'étant pas le point
fort de Smalltalk en général.
Maintenant, utilisons BirdView, le framework d'accès à Bird of Java pour aider Squeak,
en le faisant collaborer avec Java.
On confie à Java la responsabilité de la boucle interne de 1 à 100000000 et de
retourner le résultat à Squeak :
La méthode Java :
public String iteration() {
long x = 0;
String value = null;
for (int i = 0; i < 100000000; i++) {
x = x + 1;
}
value = new Long(x).toString();
return value;
}
Le programme Squeak :
Time millisecondsToRun: [
| bv x |
bv := BirdView new. "instance create"
bv ipAddress: '127.0.0.1' ipPort: 2010. "connection à un listener Bird of Java"
bv ltnName: 'ltn_postgresql'.
x := 0.
1000 timesRepeat: [
bv rpcPackage: 'test' rpcClass: 'TestSpeed' rpcMethod: 'iteration' .
bv rpcEval.
x := x + (bv evalResult at: 1 asInteger) . ] ]
Temps d'exécution : 317 secondes, soit 170 secondes de moins que le programme full Java !
Même si l 'exemple est limité, il démontre que Squeak et Java peuvent parfaitement
fonctionner ensemble, et fournir un niveau de performance supérieur en étant associé
que pris séparément.
Cela permet de sortir Squeak de son relatif isolement vis-à-vis de l'ensemble des
ressources du monde Java, très prisées en ce moment.
Dans cette configuration de test, pourtant peu favorable, BirdView et Bird of Java
qui intègre dans son noyau la 'connaissance' de Smalltalk offre un solution efficace
d'interopérabilité Squeak-Java.
Je présenterais d'autres exemples sur Squeak et BirdView notamment sur l'accès aux
bases de données à travers JDBC et la conception d'interface graphique avec Squeak
et des données.
Cordialement,
Christophe Allegrini
email : squeak at birdtechnology.net
www.birdtechnology.net
-------------- section suivante --------------
Une pièce jointe HTML a été enlevée...
URL: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20041102/4bf85f14/attachment.htm
Plus d'informations sur la liste de diffusion Squeak-fr