
가장 빠른 LoongArch 샌드박스
libloong은 임베딩 및 고빈도 스크립팅을 위해 설계된 64비트 고성능 LoongArch 에뮬레이터 라이브러리입니다. libriscv의 아키텍처를 기반으로 구축되어, 제로 의존성의 컴팩트한 ~18k LOC 코드베이스를 유지하면서 사용 가능한 가장 빠른 64비트 인터프리터 성능을 제공합니다.
명령줄 인터페이스에서 LoongArch64 Linux 프로그램을 실행할 수도 있습니다.
CoreMark 1.0 인터프리터 벤치마크(2025년 12월)에서 libloong은 Ryzen 7950X에서 64비트 카테고리를 선도하며 3000+ 점수를 안정적으로 달성합니다.
| 인터프리터 | 아키텍처 | 점수 |
|---|---|---|
| libloong | 64비트 LoongArch | 3045 |
| libriscv | 64비트 RISC-V | 2865 |
| stitch | Wasm | 2743 |
| wasm3 | Wasm | 2368 |
| wasmer (WAMR) | Wasm | 2314 |
| wasmi | Wasm | 1967 |
고급 모드: 인터프리터가 이식성의 주요 초점이지만, libloong에는 네이티브의 38%(15.5k CoreMark)에 도달하는 경량 JIT와 네이티브의 ~77%(31.9k CoreMark)에 도달하는 내장 바이너리 트랜슬레이터가 포함되어 있습니다.
게임 엔진 스크립팅은 libloong이 가장 뛰어난 분야입니다. 기존 게임은 공유 라이브러리(전체 시스템 액세스), Lua와 같은 내장 VM(~150ns 호출 오버헤드), 또는 Java 런타임을 통해 모딩을 제공합니다. _libloong_의 호출 오버헤드는 ~4ns입니다.

Asteroid 게임 예제를 참조하세요.
CMake 구성 옵션:
LA_DEBUG=ON/OFF - 디버그 출력 활성화 (기본값: OFF)LA_BINARY_TRANSLATION=ON/OFF - 바이너리 트랜슬레이션 활성화 (기본값: OFF)LA_THREADED=ON/OFF - 스레드 바이트코드 디스패치 활성화 (기본값: ON)LA_MASKED_MEMORY_BITS=N - 마스킹 메모리 아레나 크기를 2^N 바이트로 설정 (0 = 비활성화, 기본값: 0)옵션 사용 예시:
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();
}