150 个重大版本发布
新 0.153.0 | 2024 年 8 月 22 日 |
---|---|
0.151.0 | 2024 年 7 月 31 日 |
0.130.0 | 2024 年 3 月 28 日 |
0.116.0 | 2023 年 12 月 21 日 |
0.14.0 | 2021 年 11 月 24 日 |
#1898 在 Web 编程
每月 2,974 次下载
在 27 个 软件包中使用(直接使用 5 个)
290KB
8K SLoC
deno_ffi
此软件包实现了动态库 ffi。
性能
Deno FFI 调用具有极低的开销(在 M1 16GB RAM 上约为 ~1ns)并且与本地代码的性能相当。Deno 利用 V8 快速 API 调用和 JIT 编译的绑定来实现这些高速。
Deno.dlopen
生成优化路径和回退路径。当 V8 决定优化函数时,触发优化路径,从而通过快速 API 进行调用。回退路径处理函数回调等类型,并为在快速调用中不受支持的意外类型实现适当的错误处理。
优化调用进入 JIT 编译的函数 "trampoline",直接将快速 API 值转换为符号调用。由于 tinycc
的存在,JIT 编译本身非常快速。目前,仅支持 Linux 和 MacOS 上的优化路径。
要运行基准测试
target/release/deno bench --allow-ffi --allow-read --unstable-ffi ./tests/ffi/tests/bench.js
依赖关系
~93MB
~2M SLoC