Die Just-In-Time-Kompilierung (JIT) ist eine Technik, mit der die Leistung von interpretiertem Code durch Übersetzung in Maschinencode verbessert wird.
Die Ausführung des folgenden Java-Programms dauert durchschnittlich zwischen 0,50 und 0,55 Sekunden: 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) / 1000000000 …
Ich habe viel über das PyPy- Projekt gehört. Sie behaupten, es sei 6,3-mal schneller als der CPython- Interpreter auf ihrer Site . Wenn wir über dynamische Sprachen wie Python sprechen, ist Geschwindigkeit eines der Hauptprobleme. Um dies zu lösen, sei PyPy 6,3-mal schneller. Das zweite Problem ist die Parallelität, das …
Ich habe Code verglichen und konnte ihn nicht so schnell zum Laufen bringen wie mit java.math.BigInteger, selbst wenn genau derselbe Algorithmus verwendet wurde. Also habe ich die java.math.BigIntegerQuelle in mein eigenes Paket kopiert und Folgendes versucht: //import java.math.BigInteger; public class MultiplyTest { public static void main(String[] args) { Random r …
Der folgende Code gibt eine andere Ausgabe aus, wenn die Version in Visual Studio und die Version außerhalb von Visual Studio ausgeführt wird. Ich verwende Visual Studio 2008 und ziele auf .NET 3.5 ab. Ich habe auch .NET 3.5 SP1 ausprobiert. Wenn Sie außerhalb von Visual Studio ausgeführt werden, sollte …
Die kanonische JVM-Implementierung von Sun wendet eine ziemlich ausgefeilte Optimierung auf Bytecode an, um nahezu native Ausführungsgeschwindigkeiten zu erhalten, nachdem der Code einige Male ausgeführt wurde. Die Frage ist, warum dieser kompilierte Code nicht zur späteren Verwendung derselben Funktion / Klasse auf der Festplatte zwischengespeichert wird. So wie es aussieht, …
Angenommen, der Engpass meines Java-Programms besteht in einigen engen Schleifen, um eine Reihe von Vektorpunktprodukten zu berechnen. Ja, ich habe ein Profil erstellt, ja, es ist der Engpass, ja, es ist signifikant, ja, so ist der Algorithmus, ja, ich habe Proguard ausgeführt, um den Bytecode zu optimieren usw. Die Arbeit …
Ich habe ein Dokument durchgearbeitet, in dem es um Just-in-Time-Compiler- Optimierungstechniken (JIT) für Java geht. Eine davon war "Loop Inversion". Und das Dokument sagt: Sie ersetzen eine reguläre whileSchleife durch eine do-whileSchleife. Und die do-whileSchleife wird innerhalb einer ifKlausel gesetzt. Dieser Ersatz führt zu zwei Sprüngen weniger. Wie funktioniert die …
Ich bin etwas verwirrt über die Details der Funktionsweise des JIT-Compilers. Ich weiß, dass C # bis IL kompiliert wird. Das erste Mal, wenn es ausgeführt wird, ist es JIT-fähig. Bedeutet dies, dass es in nativen Code übersetzt wird? Interagiert die .NET-Laufzeit (als virtuelle Maschine?) Mit dem JIT-Code? Ich weiß, …
Ich spiele mit der Idee, einen JIT-Compiler zu schreiben, und frage mich nur, ob es theoretisch überhaupt möglich ist, das Ganze in verwaltetem Code zu schreiben. Insbesondere, wenn Sie Assembler in ein Byte-Array generiert haben, wie springen Sie hinein, um mit der Ausführung zu beginnen?
Intro: Ich schreibe Hochleistungscode in C #. Ja, ich weiß, dass C ++ mir eine bessere Optimierung bieten würde, aber ich entscheide mich trotzdem für C #. Ich möchte diese Wahl nicht diskutieren. Ich würde eher von denen hören, die wie ich versuchen, Hochleistungscode in .NET Framework zu schreiben. Fragen: …
Ich habe versucht herauszufinden, wie Tail-Aufrufe vom C # -Compiler verarbeitet werden. (Antwort: Sie sind es nicht. Aber die 64-Bit- JITs werden TCE (Tail Call Elimination) ausführen. Es gelten Einschränkungen .) Also habe ich einen kleinen Test mit einem rekursiven Aufruf geschrieben, der ausgibt, wie oft er aufgerufen wird, bevor …
Ich habe festgestellt, dass Python, wenn ich Python etwas mehr frage, meine Maschinenressource nicht zu 100% nutzt und es nicht wirklich schnell ist, es ist schnell im Vergleich zu vielen anderen interpretierten Sprachen, aber im Vergleich zu kompilierten Sprachen denke ich, dass der Unterschied ist wirklich bemerkenswert. Ist es möglich, …
Überraschenderweise wird der folgende Code ausgegeben: / -1 Der 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) …
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.