
El sandbox LoongArch más rápido
libloong es una biblioteca de emulador LoongArch de 64 bits de alto rendimiento, diseñada para integración y scripting de alta frecuencia. Construida sobre la arquitectura de libriscv, ofrece el rendimiento de intérprete de 64 bits más rápido disponible, manteniendo una base de código compacta de ~18k LOC y cero dependencias.
También puede ejecutar programas Linux LoongArch64 en la interfaz de línea de comandos.
En los benchmarks de intérprete CoreMark 1.0 (diciembre de 2025), libloong lidera la categoría de 64 bits en el Ryzen 7950X, alcanzando de forma fiable una puntuación de 3000+.
Modos avanzados: Aunque el intérprete es el enfoque principal para la portabilidad, libloong incluye un JIT ligero que alcanza el 38% del rendimiento nativo (15.5k CoreMark) y un traductor binario integrado que alcanza el ~77% del rendimiento nativo (31.9k CoreMark).
El scripting de motores de juego es donde libloong destaca. Los juegos tradicionales exponen el modding a través de bibliotecas compartidas (acceso completo al sistema), máquinas virtuales integradas como Lua (~150ns de sobrecarga de llamada) o tiempos de ejecución de Java. libloong tiene una sobrecarga de llamada de ~4ns.

Vea el juego de ejemplo Asteroid.
Opciones de configuración de CMake:
LA_DEBUG=ON/OFF - Habilita la salida de depuración (predeterminado: OFF)LA_BINARY_TRANSLATION=ON/OFF - Habilita la traducción binaria (predeterminado: OFF)LA_THREADED=ON/OFF - Habilita el despacho de bytecode con hilos (predeterminado: ON)LA_MASKED_MEMORY_BITS=N - Establece el tamaño de la arena de memoria enmascarada a 2^N bytes (0 = deshabilitado, predeterminado: 0)Ejemplo con opciones:
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();
}
| Intérprete | Arquitectura | Puntuación |
|---|
| libloong | 64-bit LoongArch | 3045 |
| libriscv | 64-bit RISC-V | 2865 |
| stitch | Wasm | 2743 |
| wasm3 | Wasm | 2368 |
| wasmer (WAMR) | Wasm | 2314 |
| wasmi | Wasm | 1967 |