Le programme Java suivant prend en moyenne entre 0,50 et 0,55 seconde pour s'exécuter: public static void main(String[] args) { long startTime = System.nanoTime(); int n = 0; for (int i = 0; i < 1000000000; i++) { n += 2 * (i * i); } System.out.println((double) (System.nanoTime() - startTime) …
J'ai beaucoup entendu parler du projet PyPy . Ils affirment qu'il est 6,3 fois plus rapide que l' interpréteur CPython sur leur site . Chaque fois que nous parlons de langages dynamiques comme Python, la vitesse est l'un des principaux problèmes. Pour résoudre ce problème, ils disent que PyPy est …
Que fait spécifiquement un compilateur JIT par rapport à un compilateur non JIT? Quelqu'un peut-il donner une description succincte et facile à comprendre?
J'étalonnais du code et je ne pouvais pas le faire fonctionner aussi vite qu'avec java.math.BigInteger, même en utilisant exactement le même algorithme. J'ai donc copié la java.math.BigIntegersource dans mon propre package et essayé ceci: //import java.math.BigInteger; public class MultiplyTest { public static void main(String[] args) { Random r = new …
Le code suivant donne une sortie différente lors de l'exécution de la version dans Visual Studio et de l'exécution de la version en dehors de Visual Studio. J'utilise Visual Studio 2008 et je cible .NET 3.5. J'ai également essayé .NET 3.5 SP1. Lors de l'exécution en dehors de Visual Studio, …
L'implémentation JVM canonique de Sun applique une optimisation assez sophistiquée au bytecode pour obtenir des vitesses d'exécution quasi-natives après que le code a été exécuté plusieurs fois. La question est, pourquoi ce code compilé n'est-il pas mis en cache sur le disque pour une utilisation lors des utilisations ultérieures de …
Disons que le goulot d'étranglement de mon programme Java est vraiment quelques boucles serrées pour calculer un tas de produits scalaires vectoriels. Oui j'ai profilé, oui c'est le goulot d'étranglement, oui c'est significatif, oui c'est juste comme ça que l'algorithme est, oui j'ai exécuté Proguard pour optimiser le byte code, …
J'étais en train de parcourir un document qui parle des techniques d'optimisation du compilateur juste à temps (JIT) pour Java. L'un d'eux était "l'inversion de boucle". Et le document dit: Vous remplacez une whileboucle régulière par une do-whileboucle. Et la do-whileboucle est définie dans une ifclause. Ce remplacement entraîne deux …
Je joue avec l'idée d'écrire un compilateur JIT et je me demande simplement s'il est même théoriquement possible d'écrire le tout en code managé. En particulier, une fois que vous avez généré l'assembleur dans un tableau d'octets, comment y sauter pour commencer l'exécution?
Intro: J'écris du code haute performance en C #. Oui, je sais que C ++ me donnerait une meilleure optimisation, mais je choisis toujours d'utiliser C #. Je ne souhaite pas débattre de ce choix. J'aimerais plutôt entendre ceux qui, comme moi, essaient d'écrire du code haute performance sur le …
Étonnamment, le code suivant sort: / -1 Le code: public class LoopOutPut { public static void main(String[] args) { LoopOutPut loopOutPut = new LoopOutPut(); for (int i = 0; i < 30000; i++) { loopOutPut.test(); } } public void test() { int i = 8; while ((i -= 3) > …
Considérez les deux extraits de code suivants sur un tableau de longueur 2: boolean isOK(int i) { for (int j = 0; j < filters.length; ++j) { if (!filters[j].isOK(i)) { return false; } } return true; } et boolean isOK(int i) { return filters[0].isOK(i) && filters[1].isOK(i); } Je suppose que …
Lors de l'écriture de code sensible aux performances en Javascript qui fonctionne sur de grands tableaux numériques (pensez à un package d'algèbre linéaire, fonctionnant sur des nombres entiers ou à virgule flottante), on veut toujours que le JIT aide autant que possible. En gros, cela signifie: Nous voulons toujours que …
En jouant avec des tests unitaires pour une classe singleton hautement simultanée, je suis tombé sur le comportement étrange suivant (testé sur JDK 1.8.0_162): private static class SingletonClass { static final SingletonClass INSTANCE = new SingletonClass(0); final int value; static SingletonClass getInstance() { return INSTANCE; } SingletonClass(int value) { this.value …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.