
أسرع صندوق رمل لـ LoongArch
libloong هي مكتبة محاكاة LoongArch عالية الأداء 64 بت مصممة للتضمين والبرمجة النصية عالية التردد. بُنيت على أساس libriscv، وتوفر أفضل أداء لمفسر 64 بت متاح، مع الحفاظ على قاعدة شفرة مدمجة بحوالي 18 ألف سطر وبدون تبعيات.
يمكنك أيضًا تشغيل برامج LoongArch64 Linux في واجهة سطر الأوامر.
في اختبارات أداء المفسر CoreMark 1.0 (ديسمبر 2025)، يتصدر libloong فئة 64 بت على Ryzen 7950X، واصلاً بشكل موثوق إلى نتيجة 3000+.
| المفسر | البنية | النتيجة |
|---|---|---|
| libloong | LoongArch 64 بت | 3045 |
| libriscv | RISC-V 64 بت | 2865 |
| stitch | Wasm | 2743 |
| wasm3 | Wasm | 2368 |
| wasmer (WAMR) | Wasm | 2314 |
| wasmi | Wasm | 1967 |
الأوضاع المتقدمة: بينما يعد المفسر هو المحور الأساسي للقابلية للنقل، تتضمن libloong JIT خفيف يصل إلى 38% من الأداء الأصلي (15.5k CoreMark) ومترجم ثنائي مدمج يصل إلى ~77% من الأداء الأصلي (31.9k CoreMark).
البرمجة النصية لمحركات الألعاب هي المجال الذي تتفوق فيه libloong. الألعاب التقليدية تتيح التعديل من خلال المكتبات المشتركة (وصول كامل للنظام)، أو الأجهزة الافتراضية المضمنة مثل Lua (~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();
}