Il seguente programma Java impiega in media tra 0,50 secondi e 0,55 secondi per essere eseguito: 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() …
Ho sentito molto parlare del progetto PyPy . Affermano che è 6,3 volte più veloce dell'interprete CPython sul loro sito . Ogni volta che parliamo di linguaggi dinamici come Python, la velocità è uno dei problemi principali. Per risolvere questo, dicono che PyPy è 6,3 volte più veloce. Il secondo …
Stavo confrontando un po 'di codice e non riuscivo a farlo funzionare così velocemente java.math.BigInteger, anche quando usavo lo stesso algoritmo. Quindi ho copiato l' java.math.BigIntegerorigine nel mio pacchetto e ho provato questo: //import java.math.BigInteger; public class MultiplyTest { public static void main(String[] args) { Random r = new Random(1); …
Il codice seguente fornisce un output diverso quando si esegue la versione all'interno di Visual Studio e si esegue la versione all'esterno di Visual Studio. Sto usando Visual Studio 2008 e ho come target .NET 3.5. Ho anche provato .NET 3.5 SP1. Quando si esegue al di fuori di Visual …
L'implementazione canonica di JVM di Sun applica un'ottimizzazione piuttosto sofisticata al bytecode per ottenere velocità di esecuzione quasi native dopo che il codice è stato eseguito alcune volte. La domanda è: perché questo codice compilato non viene memorizzato nella cache su disco per essere utilizzato durante gli usi successivi della …
Diciamo che il collo di bottiglia del mio programma Java è davvero un ciclo stretto per calcolare un mucchio di prodotti a punti vettoriali. Sì, ho profilato, sì, è il collo di bottiglia, sì è significativo, sì è proprio così che è l'algoritmo, sì, ho eseguito Proguard per ottimizzare il …
Stavo esaminando un documento che parla delle tecniche di ottimizzazione del compilatore just-in-time (JIT) per Java. Uno di questi era "inversione di ciclo". E il documento dice: Sostituisci un whileciclo regolare con un do-whileciclo. E il do-whileciclo è impostato all'interno di una ifclausola. Questa sostituzione porta a due salti in …
Sono diventato un po 'confuso sui dettagli di come funziona il compilatore JIT. So che C # compila fino a IL. La prima volta che viene eseguito è JIT. Questo implica che venga tradotto in codice nativo? Il runtime .NET (come macchina virtuale?) Interagisce con il codice JIT? So che …
Sto giocando con l'idea di scrivere un compilatore JIT e mi chiedo solo se sia anche teoricamente possibile scrivere il tutto in codice gestito. In particolare, una volta generato l'assembler in un array di byte, come ci salti per iniziare l'esecuzione?
Intro: scrivo codice ad alte prestazioni in C #. Sì, so che C ++ mi darebbe una migliore ottimizzazione, ma scelgo comunque di usare C #. Non desidero discutere questa scelta. Piuttosto, mi piacerebbe sentire chi, come me, sta cercando di scrivere codice ad alte prestazioni su .NET Framework. Domande: …
Sorprendentemente, il seguente codice genera: / -1 Il codice: 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) > …
Considera i seguenti due frammenti di codice su un array di lunghezza 2: boolean isOK(int i) { for (int j = 0; j < filters.length; ++j) { if (!filters[j].isOK(i)) { return false; } } return true; } e boolean isOK(int i) { return filters[0].isOK(i) && filters[1].isOK(i); } Suppongo che le …
Quando si scrive un codice sensibile alle prestazioni in Javascript che opera su grandi matrici numeriche (si pensi ad un pacchetto di algebra lineare, operando su numeri interi o in virgola mobile), si vuole sempre che JIT ti aiuti il più possibile. All'incirca questo significa: Vogliamo sempre che le nostre …
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.