设为首页 加入收藏

TOP

Erlang 不同版本内容(二)
2019-09-14 00:51:25 】 浏览:458
Tags:Erlang 不同 版本 内容
输、路由等
  • 压缩指令64位系统代码,低于4GB内存的20%的已加载代码
  • 使用NIFs和“脏调度程序”重写efile驱动程序,从而加快文件操作
  • non-smp VM删除
  • 为可伸缩性优化的链接和监视器
  • 操作系统:getenv/putenv现在致力于线程安全模拟。不再与libc getenv(3)同步。需要手动同步。
  • Compiler:
    • Misc编译器优化,包括Elixir团队的贡献,在基准测试中得到10%的改进
    • “元组调用”已从运行时系统中删除。
    • 像f({ok, Val}) -> {ok, Val}这样的代码现在被自动重写为f({ok, Val} = Tuple) -> Tuple。这减少了代码大小、执行时间和消除了GC压力。
    • stacktrace中的更多信息来自多个操作符
    • erlang:get_stacktrace/0不赞成使用,代以 try … catch C:R:Stacktrace -> …
    • 优化创建具有文字键的小映射。
    • 一个新的预编译宏' OTP_RELEASE '和预处理器指令' -if '和' -elif '
    安全:
    • SSL应用程序现在支持DTLS
    • 增强了对TLS分发的支持
    • 从SSL和SSH的缺省值中删除“不安全”密码。
    • 定义一个新选项值,以方便实现exec服务器。旧选项保持兼容性,但现在在stderror上出现错误。
    标准库:
    • 新的日志API, logger
    • 根据“标准”解析uri的新uri_string模块
    • 新函数:lists:search(list,fun/1) -> {ok, Value} | false
    • 更改了.erlang加载的默认行为。escript、erlc、dialyzer和typer不再加载.erlang。
     
    OTP 20.3
    Erlang/OTP 20.3是20个主要版本的第三个服务版本。服务版本主要包含bug修复和特性改进,但也包含一些新特性。
    ssl
            增加了新的API函数,以方便密码套件的处理
    erts,observer
            更多的崩溃转储信息,例如:进程二进制虚拟堆统计信息、导致GC期间mem超时的进程的完整信息、更多的端口相关信息和脏调度程序信息。
    inet
            在http客户机中添加对unix域套接字的支持。
     
    OTP 20.2
    Erlang/OTP 20.2是20个主要版本的第二个服务版本。服务版本主要包含bug修复和特性改进,但也包含一些新特性。
    crypto,ssl
        crypto API被扩展为使用存储在引擎中的私钥/公钥进行签名/验证或加密/解密操作。
        ssl应用程序提供了一个API来在TLS中使用这个新的引擎概念。
    ssh
        SSH现在可以从存储在引擎中的私钥获取主机密钥。有关引擎的详细信息,请参阅crypto应用程序。
    ssl
        添加了一个新的命令行选项-ssl_dist_optfile,以便在使用SSL作为分发协议时指定所需的许多选项。
    stdlib
        在处理ASCII字符时提高新字符串功能的性能。
     
     
    OTP 20.1
    20.1的一些亮点
    crypto, public_key:crypto和public_key函数签名扩展,用下面方式验证:
    • 支持rsasa - ps填充签名和盐长设置
    • X9.31 RSA填充。
    • 如NIST SP 800-57第1部分所述,用于dss签名的sha、sha224、sha256、sha384和sha512。
    • 用于rsa签名的ripemd160。
    一个新的元组在 crypto:supports/0 报告支持MAC算法。
    diameters
    • 添加服务选项decode_format,允许将传入的消息解码为映射,而不是记录。
    • 解码性能得到了提高。
    • 添加服务/传输选项avp_dictionary,以便更好地支持只定义AVPs的字典。
    erts:将erts内部PCRE库从8.40版本升级到8.41版本。
    erts、kernel、tools:现在可以在运行时在锁计数模拟器(-emu_type lcnt)中完全切换带有锁计数的分析。默认情况下,所有内容都启用了与旧行为匹配的功能,但是在禁用特定类别时,可以随意切换,而运行时开销最小。有关详细信息,请参阅lcnt:rt_mask/1上的文档。
    lcnt:collect和lcnt:clear将不再阻塞运行时系统中的所有其他线程。这使得在较重的负载下运行锁计数成为可能。
    erts:zlib模块已经被重构,它的所有操作现在都将得到适当的处理,允许它们在并发应用程序中自由使用。
    erts,tools:添加erlang:iolist_to_iovec/1,它将iolist()转换为erlang:iovec(),后者适合与enif_inspect_iovec()一起使用。
    erts:添加新的nif API函数来管理I/O队列。
    添加的函数有:enif_ioq_create()、enif_ioq_destroy()、enif_ioq_enq_binary()、enif_ioq_enqv()、enif_ioq_deq()、enif_ioq_peek()、enif_inspect_iovec()、enif_free_iovec()
    observer/crashdump_viewer
    • 对包含许多二进制文件的崩溃转储文件的读取进行了优化。
    • 当打开流程的详细信息视图时,将显示一个进度条。
    • cdv脚本现在将ERL_CRASH_DUMP_SECONDS设置为0,以避免从运行Crashdump查看器的节点生成新的崩溃转储。
    observer
    在observer中将系统统计信息和限制添加到frontpage。
    public_key,ssl * *:
    改进了错误传播和报告
    ssh:实现了一个新的选项modify_algorithms。它支持在默认算法列表上指定更改。参见参考手册和SSH用户指南“在SSH中配置算法”一章。
    tools/xref:预定义的xref analysis locals_not_used现在理解-on_load()属性,并且不报告未使用的函数。
    tools/fprof:当采样多个进程并将total设置为true进行分析时,输出现在将所有涉及相同函数的调用者和被调用者条目汇总在一起。以前的行为是分别报告每个贡献条目。
     
    OTP 20.0
    潜在的不兼容
    ERTS:
    • 不支持SMP Erlang VM,默认情况下不构建它
    • 移除弃用erlang:hash/2
    • erlang
    首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇erlang和rabbitMq在ubuntu上的安.. 下一篇Linux(centOS6.5)安装RabbitMQ

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目