
Le sandbox LoongArch le plus rapide
libloong est une bibliothèque d'émulation LoongArch 64 bits haute performance conçue pour l'intégration et le scripting à haute fréquence. Construite sur l'architecture de libriscv, elle offre les performances d'interpréteur 64 bits les plus rapides disponibles, tout en maintenant une base de code compacte d'environ 18 000 lignes avec zéro dépendance.
Vous pouvez également exécuter des programmes Linux LoongArch64 dans l'interface en ligne de commande.
Dans les benchmarks d'interpréteur CoreMark 1.0 (décembre 2025), libloong est en tête de la catégorie 64 bits sur le Ryzen 7950X, atteignant régulièrement un score de 3000+.
Modes avancés : Bien que l'interpréteur soit le principal objectif pour la portabilité, libloong inclut un JIT léger atteignant 38% du natif (15.5k CoreMark) et un traducteur binaire embarqué atteignant ~77% du natif (31.9k CoreMark).
Le scripting de moteurs de jeu est le domaine où libloong excelle. Les jeux traditionnels exposent le modding via des bibliothèques partagées (accès complet au système), des VM embarquées comme Lua (surcoût d'appel ~150ns), ou des environnements d'exécution Java. libloong a un surcoût d'appel d'environ 4ns.

Voir l'exemple de jeu Astéroïdes.
Options de configuration CMake :
LA_DEBUG=ON/OFF - Activer les sorties de débogage (défaut : OFF)LA_BINARY_TRANSLATION=ON/OFF - Activer la traduction binaire (défaut : OFF)LA_THREADED=ON/OFF - Activer le dispatch de bytecode multithreadé (défaut : ON)LA_MASKED_MEMORY_BITS=N - Définir la taille de l'arène mémoire masquée à 2^N octets (0 = désactivé, défaut : 0)Exemple avec options :
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DLA_MASKED_MEMORY_BITS=32 \
-DLA_BINARY_TRANSLATION=ON
make -j6
#include <libloong/machine.hpp>
int main() {
// Load a LoongArch ELF binary
std::vector<uint8_t> binary = load_file("program.elf");
// Create a machine with 64MB memory
loongarch::Machine machine { binary, {
.memory_max = 64 * 1024 * 1024
}};
// Setup program arguments
machine.setup_linux({"program"}, {"LC_ALL=C"});
// Run the program
machine.simulate();
}
| Interpréteur | Architecture | Score |
|---|
| libloong | 64-bit LoongArch | 3045 |
| libriscv | 64-bit RISC-V | 2865 |
| stitch | Wasm | 2743 |
| wasm3 | Wasm | 2368 |
| wasmer (WAMR) | Wasm | 2314 |
| wasmi | Wasm | 1967 |