Nous calculons quelque chose dont le runtime est lié par des opérations matricielles. (Quelques détails ci-dessous si vous êtes intéressé.) Cette expérience a soulevé la question suivante:
Les gens ont-ils une expérience des performances des bibliothèques Java pour les mathématiques matricielles (par exemple, multiplier, inverser, etc.)? Par exemple:
J'ai cherché et je n'ai rien trouvé.
Détails de notre comparaison de vitesse:
Nous utilisons Intel FORTRAN (ifort (IFORT) 10.1 20070913). Nous l'avons réimplémenté en Java (1.6) en utilisant les opérations matricielles Apache commons math 1.2, et il accepte tous ses chiffres de précision. (Nous avons des raisons de le vouloir en Java.) (Java double, Fortran real * 8). Fortran: 6 minutes, Java 33 minutes, même machine. Le profilage jvisualm montre beaucoup de temps passé dans RealMatrixImpl. {getEntry, isValidCoordinate} (qui semblent avoir disparu dans Apache commons math 2.0, mais 2.0 n'est pas plus rapide). Fortran utilise les routines Atlas BLAS (dpotrf, etc.).
Évidemment, cela pourrait dépendre de notre code dans chaque langage, mais nous pensons que la plupart du temps est en opérations matricielles équivalentes.
Dans plusieurs autres calculs qui n'impliquent pas de bibliothèques, Java n'a pas été beaucoup plus lent, et parfois beaucoup plus rapide.