bitwise:用于显示Erlang调度程序问题的Erlang NIF示例

时间:2024-05-19 00:35:40
【文件属性】:

文件名称:bitwise:用于显示Erlang调度程序问题的Erlang NIF示例

文件大小:24.41MB

文件格式:ZIP

更新时间:2024-05-19 00:35:40

C

按位:NIF示例显示Erlang调度程序的问题 bitwise模块实现了几个Erlang本机实现函数(NIF),旨在显示NIF对Erlang调度程序线程可能产生的几种不同影响。 该模块提供的功能的几个变体exor/2采用一个二进制和一个字节值,并应用异或字节的每一个字节在二进制并返回所得到的值的一个新的二进制。 这些变体的运行方式如下: 一个示例exor_bad/2显示了一个异常的NIF,如果输入二进制文件足够大,它将在调度程序线程上占用太多时间,并运行数秒钟。 通常,NIF应该在调度程序线程上运行仅一毫秒或更短的时间。 另一个示例使用Erlang代码将大型输入二进制文件拆分为4MB的块,分别为每个块调用exor_bad/2 ,然后重新组合结果。 exor_yield/2变体使用Erlang / OTP 17.3中引入的,以确保NIF在消耗1毫秒的时间片之后产生调度程序线程。 它使用


【文件预览】:
bitwise-master
----c_src()
--------bitwise_nif.c(6KB)
----src()
--------bitwise.erl(4KB)
--------bitwise.app.src(168B)
----vinoski-schedulers.pdf(14.93MB)
----vinoski-opt-native-code.pdf(10.66MB)
----README.md(4KB)
----Makefile(43B)
----rebar.config(210B)
----.gitignore(39B)

网友评论