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 日

#1898Web 编程

Download history 1472/week @ 2024-05-02 1042/week @ 2024-05-09 1110/week @ 2024-05-16 604/week @ 2024-05-23 800/week @ 2024-05-30 789/week @ 2024-06-06 1615/week @ 2024-06-13 1491/week @ 2024-06-20 594/week @ 2024-06-27 850/week @ 2024-07-04 1031/week @ 2024-07-11 574/week @ 2024-07-18 1229/week @ 2024-07-25 875/week @ 2024-08-01 440/week @ 2024-08-08 344/week @ 2024-08-15

每月 2,974 次下载
27 软件包中使用(直接使用 5 个)

MIT 许可证

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