Version française
Home     About     Download     Resources     Contact us    
Browse thread
OCamlODBC
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Maxence Guesdon <max@s...>
Subject: Re: OCamlODBC
Bonjour,

 
>  > I'm pleased to announce OCamlODBC 1.0, an OCaml library that you can use
> 
> Les performances sont-elles satisfaisantes ? J'ai été très déçu par
> l'accès à MySQL par la bibliothèque ODBC d'un autre langage
> fonctionnel (60 requêtes/s, contre 1200 avec /usr/bin/mysql
> exécutant un script). Je ne sais pas si c'était dû au langage,
> à la bibliothèque, à iodbc ou à mysqlodbc.

Je n'ai pas réellement fait de test de performance. J'ai exécuté
quelques centaines de requêtes à la suite et la vitesse convenait à mes
besoins. Cependant, l'utilisation avec MySQL s'est révélée beaucoup,
beaucoup plus rapide qu'avec Open Ingres, sans doute une question de
driver ODBC.
D'autre part, comme vous pourrez le voir, la bibliothèque fournit deux
fonctions d'exécution de requête (execute et execute_2). La première
(execute) tente de ramener tous les enregistrements résultats et ensuite
de construire la liste de listes OCaml. Hum, hum, c'est vraiment pas bon
quand il y a beaucoup de résultats car :
1- cela prend beaucoup de mémoire 
2- même avec quelques options qui vont bien pour le GC (notamment
réserver quelques dizaines de Mega), ça prend beaucoup de temps.

D'où la fonction execute_2, qui récupère quelques enregistrements,
construit la liste de listes, récupère d'autres enregistrements, les
ajoute à la liste et ainsi de suite. C'est mieux car le GC à l'occasion
de faire ses choses en mémoire, mais sur les requêtes qui retournent
beaucoup de données c'est encore un peu lent (voire lent tout court !).

Pour l'instant je me sers surtout de la base de données pour (surprise
!) stocker des données et les lire, disons au rythme de l'utilisateur
car ce sont surtout ses clics qui déclenchent quelques mises à jour
par-ci par-là.

Faites-moi savoir si vous faites quelques tests de performance...
 
Cordialement,

MG