Wasmer 2.0 ได้รับการเผยแพร่แล้วและมาพร้อมกับ SIMD การปรับปรุงและอื่น ๆ

หลังจากเปิดตัวเวอร์ชั่นแรกไปเกือบหกเดือน months, ประกาศเปิดตัวเวอร์ชันใหม่ของโปรเจ็กต์ Wasmer ซึ่งอยู่ในเวอร์ชันหลักที่สอง second และมีการเปลี่ยนแปลงที่สำคัญในระดับที่ API ภายในในเวอร์ชันที่สองนี้เข้ากันไม่ได้ แม้ว่าจะมีการเพิ่มคุณลักษณะใหม่ที่เพิ่มความเสถียร ความปลอดภัย และการปรับปรุงประสิทธิภาพด้วย

สำหรับคนที่ไม่รู้จัก Wasmer คุณควรรู้ว่ามันพัฒนารันไทม์เพื่อรันโมดูล WebAssembly ที่สามารถใช้สร้างแอปพลิเคชันสากลที่สามารถทำงานบนระบบปฏิบัติการหลายระบบและเรียกใช้โค้ดที่ไม่น่าเชื่อถือแบบแยกส่วนได้

พกพาได้โดยการคอมไพล์รหัสแอปพลิเคชันลงในมิดเดิลแวร์ WebAssembly ระดับต่ำ มันสามารถทำงานบนระบบปฏิบัติการใด ๆ หรือรวมเข้ากับโปรแกรมในภาษาการเขียนโปรแกรมอื่น ๆ โปรแกรมเป็นคอนเทนเนอร์ขนาดเล็กที่เรียกใช้รหัสเทียมของ WebAssembly

เหล่านี้ คอนเทนเนอร์ไม่ได้ผูกติดอยู่กับระบบปฏิบัติการและสามารถรวมรหัสที่เขียนในภาษาใดก็ได้ การเขียนโปรแกรม Emscripten Toolkit สามารถใช้เพื่อคอมไพล์ไปยัง WebAssembly ในการแปล WebAssembly เป็นรหัสเครื่องของแพลตฟอร์มปัจจุบัน รองรับการเชื่อมต่อแบ็กเอนด์บิลด์ต่างๆ (Singlepass, Cranelift, LLVM) และเอ็นจิ้น (โดยใช้ JIT หรือการสร้างรหัสเครื่อง)

การควบคุมการเข้าถึงและการโต้ตอบกับระบบมีให้ผ่าน WASI (WebAssembly System Interface) API ซึ่งมีอินเทอร์เฟซการเขียนโปรแกรมสำหรับการทำงานกับไฟล์ ซ็อกเก็ต และฟังก์ชันอื่นๆ ที่ระบบปฏิบัติการจัดเตรียมไว้ให้

แอปพลิเคชันแยกจากระบบหลัก และเข้าถึงได้เฉพาะฟังก์ชันที่ประกาศไว้ (กลไกการรักษาความปลอดภัยตามความสามารถในการจัดการสำหรับการดำเนินการกับทรัพยากรแต่ละรายการ (ไฟล์ ไดเร็กทอรี ซ็อกเก็ต การเรียกระบบ ฯลฯ)

ความแปลกใหม่หลักของ Wasmer 2.0

ในเวอร์ชั่นใหม่นี้ขอนำเสนอว่า การเปลี่ยนแปลงที่สำคัญในหมายเลขเวอร์ชัน version โดย Wasmer เกี่ยวข้องกับการแนะนำการเปลี่ยนแปลงที่เข้ากันไม่ได้กับ API ภายใน ซึ่งตามที่นักพัฒนาระบุว่า จะไม่ส่งผลกระทบ 99% ของผู้ใช้ จากแพลตฟอร์มแต่อย่างใด

นอกจากนี้ยังมีการเปลี่ยนแปลงในรูปแบบของโมดูล Wasm ที่เป็นอนุกรมระหว่างการเปลี่ยนแปลงความเข้ากันได้ที่สำคัญ (โมดูลที่ต่อเนื่องกันใน Wasmer 1.0 จะไม่สามารถใช้งานได้ใน Wasmer 2.0)

นอกจากนี้ การสนับสนุนสำหรับคำแนะนำ SIMD ถูกเน้น (คำสั่งเดียว หลายข้อมูล) ซึ่ง อนุญาตการดำเนินการข้อมูลแบบขนาน. พื้นที่ที่การใช้ SIMD สามารถเพิ่มประสิทธิภาพการทำงานได้อย่างมาก ได้แก่ การเรียนรู้ของเครื่อง การเข้ารหัสและถอดรหัสวิดีโอ การประมวลผลภาพ การจำลองกระบวนการทางกายภาพ และการจัดการกราฟิก

tambien เน้นการสนับสนุนสำหรับประเภทการอ้างอิง อนุญาตให้โมดูล Wasm เข้าถึงข้อมูลในโมดูลอื่นหรือในสภาพแวดล้อมพื้นฐานและมีการเพิ่มประสิทธิภาพที่สำคัญ ความเร็วรันไทม์ LLVM พร้อมตัวเลขทศนิยมเพิ่มขึ้นประมาณ 50%

การเรียกใช้ฟังก์ชันได้เพิ่มขึ้นอย่างมากโดยการลดสถานการณ์ที่ต้องใช้การเรียกเคอร์เนล. ประสิทธิภาพของตัวสร้างรหัส Cranelift เพิ่มขึ้น 40% ลดเวลาในการดีซีเรียลไลซ์ข้อมูล เพื่อให้สะท้อนส่วนสำคัญได้แม่นยำยิ่งขึ้น ชื่อเอ็นจิ้นได้เปลี่ยนไป: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library)

ในที่สุด หากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับ Wasmer คุณควรรู้ว่ารหัสโครงการเขียนด้วยภาษา Rust มีใบอนุญาต MIT และคุณสามารถตรวจสอบรายละเอียดได้จากเว็บไซต์ทางการที่ ลิงค์ต่อไปนี้

ติดตั้งรันไทม์ Wasmer

ในทางกลับกันสำหรับผู้ที่สนใจในการเรียกใช้คอนเทนเนอร์ WebAssembly คุณจะต้องติดตั้งรันไทม์ Wasmer บนระบบของคุณเท่านั้นซึ่งมาโดยไม่ต้องพึ่งพาภายนอก

สิ่งสำคัญคือต้องพูดถึงเรื่องนั้น Wasmer สามารถทำงานบนแพลตฟอร์มใดก็ได้ macOS, Linux และ Windows ข้อกำหนดเดียวคือต้องติดตั้งรันไทม์บนระบบของคุณ

ในการดำเนินการนี้ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล:

curl https://get.wasmer.io -sSfL | sh

และหลังจากนั้นพวกเขาจะต้องเรียกใช้ไฟล์ที่ต้องการ:

wasmer test.wasm

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการทำงานของ Wasmer หรือต้องการทราบซอร์สโค้ดคุณสามารถปรึกษาได้ทั้งหมด ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา