• 【Rust日报】2022-08-02 hypher 将30种自然语言塞到1.1M空间内


    hypher 将30种自然语言塞到1.1M空间内

    这篇博文是关于hypher的,一个用于Rust的连字符解析库。

    作者正在开发一个名为Typst的纯rust实现的 LaTeX替代品。为了获得与 LaTeX 相同的解析结果,Typst 需要对连字符的支持。在 docs.rs上的快速搜索显示,真正相关的库只有一个,恰好就叫 hyphenation。这个库有很多功能,支持很多语言。然而,它也有相当大的二进制开销(2.8MB)。虽然可以在运行时加载模式文件,但单独分发模式文件显然比直接嵌入它们要复杂得多。除此之外还遇到了一些因为频繁加载导致的性能问题,

    于是作者决定建立一个新的crate,目标如下。没有分配,在运行时没有加载,更少的二进制开销和最小的依赖性。最终实现了将30种自然语言的音节解析塞到了1.1MB的空间内。

    3b104b3edd4b0fa6c830c1a65d439c03.png

    ReadMore: https://laurmaedje.github.io/posts/hypher/

    flashmap 一个无锁的并发安全的 hashmap

    一个无锁、部分无等待、最终一致、并发安全的 hashmap。极其快速的读取的代价是,当一个写被执行时,所有的读线程只有在完成他们的最后一次读并开始一个新的读时才会观察到这个写。

    flashmap 是为读取远远大于写入的场景而优化的,适合使用的情况包括:

    • 偶尔插入/删除的高频率读取

    • 通过内部可变性对现有条目进行高频率的修改,并偶尔的插入/删除

    • 高频读取,另一个线程执行适度的写入数据

    不宜 flashmap 的情况包括:

    • 频繁的、小规模的写入,不能分批进行

    • 来自多个线程的并发写访问

    ReadMore: https://github.com/Cassy343/flashmap


    From 日报小组 Koalr

    社区学习交流平台订阅:

    • Rustcc论坛: 支持rss

    • 微信公众号:Rust语言中文社区

  • 相关阅读:
    软件测试面试百问:如何测试App性能?
    最小价格 (爱思创算法四)(期中测试)(答案记录)
    防脱发、再生发
    html2canvas快速使用
    通过sls采集k8s集群上的服务日志
    nginx基础篇
    若依分页问题
    vi编辑器:-vi的使用方法的记录
    详解Python中哈希表的使用。站在开发者角度,与大家一起探究哈希的世界。
    C# Onnx Yolov8 Seg 分割
  • 原文地址:https://blog.csdn.net/u012067469/article/details/126132567