Anansi 0.7,一个简单的全栈网络框架

引入了reactivity和 WebAssembly 支持。

https://saru-tora.github.io/anansi/

OpenAI 的异步 Rust 库

各位 Rustaceans,我今年一直在写 Rust,很高兴分享我的第二个crate https://github.com/64bit/async-openai - OpenAI API 的 Rust 绑定。我的第一个crate是大约 10 个月前,我在 Rust 的旅程中已经走了很远。 它是一个新项目,因此可能存在粗糙的边缘并且尚未实现所有 API。

有趣的部分是:存储库的徽标是由 OpenAI 生成的 - 我已将该示例包含在示例目录中。

比较 u64 与比较字符串的性能

出于好奇,我正在查看本周发布在这里的一个库的源代码,我注意到短字符串被转换为u64,如下所示

let mut key: u64 = 0;let mut shift = 0;while let Some(&ch) = self.next() {match ch {b'a'..=b'z' if shift < 64 => {key |= (ch as u64) << shift;shift += 8;}b' ' | b'\t' | b'\r' | b'\n' => (),b'=' => {return key.into();}b'A'..=b'Z' if shift < 64 => {key |= ((ch - b'A' + b'a') as u64) << shift;shift += 8;}b';' => {key = 0;}_ => {key = u64::MAX;shift = 64;}}}

然后作为整数进行比较:

pub(crate) const A: u64 = b'a' as u64;
pub(crate) const B: u64 = b'b' as u64;
pub(crate) const BH: u64 = (b'b' as u64) | ((b'h' as u64) << 8);match key {A => {// do something for A}B => {// do something for B}BH => {// do something for BH}_ => {}}

我不太了解编译器内部原理,但是你们认为这样做比简单地将字节存储在[u8;8]数组中,然后将值作为字节进行比较?

From 日报小组 时光

社区学习交流平台订阅:

  • Rustcc 论坛:支持 rss

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

【Rust日报】2022-12-04 比较 u64 与比较字符串的性能相关推荐

  1. 人工智能 | ShowMeAI资讯日报 #2022.06.04

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

  2. Hibiscus的脑机接口学习周报(2022/12/26~2022/1/1)

    2022/12/26(星期一) 在学习使用python mne库读取.set类型数据时,遇到了类似如下报错:buffer is too small (来源于Python读取.set格式的脑电数据出现b ...

  3. 【2022.09.04】关于升级打怪学编程活动的通知

    把电子学会全国青少年软件编程等级考试作为游戏的关卡,带着小朋友们升级打怪. 升级打怪计划 每周日晚20:00,我在腾讯会议中进行直播答疑,解决小朋友们本周遇到的编程问题,辅助小朋友们提升编程的技能. ...

  4. rust主播排行_「Rust日报」2019每周精选 • 第四期

    前言: 从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛.tg channel.Steemit.GitHub.语雀订阅都开通了Rust日报,分享我每天的见闻,偶尔也夹 ...

  5. 【Rust日报】2022-09-14 使用 Rust 构建简单博客 华为实习生招募

    使用 Rust 构建简单博客 作者以写 Go 为主,他认为学习任何语言都可以从一个 web 程序入手,那么事情就会变得明朗,本文展示的是作者在学习了一段时间 Rust 后开始搭建简单博客系统的过程,很 ...

  6. Ubuntu 12.04安装Sun JDK 6

    Ubuntu 12.04安装Sun JDK 6 下载 sun jdk 6 bin. 设置权限 chmod +x jdk-6u25-linux-i586.bin 解压文件 ./jdk-6u25-linu ...

  7. Ubuntu 12.04 64bit上安装Apache Traffic Server 4.1.2

    说明: 对于企业级服务器来说,一般是使用Redhat或是CentOS上来跑Apache traffic server作为代理缓存服务器, 一般使用Ubuntu的机会很少,我这里探讨安装在Ubuntu ...

  8. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频直播服务

    本篇博客继续在上篇<在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务> http://blog.csdn.net/tao_627/article/detail ...

  9. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务

    说明如下: (1)所有操作最好使用root操作,以尽可能避免权限问题 (2)crtmpserver和web服务器apache(Ngnix亦可)被装在同一台服务器上,客户端使用其他PC的桌面浏览器和an ...

最新文章

  1. Redis-06Redis数据结构--集合Set
  2. 均方误差越大越好_超详细 | 如何写好计量经济学实证分析论文?
  3. python 进程间通信(上)
  4. 【C语言简单说】十六:do...while循环
  5. python字符串怎么用_零基础如何使用python处理字符串?
  6. in ms sql 集合参数传递_神奇的 SQL → 为什么 GROUP BY 之后不能直接引用原表中的列?...
  7. 计算机知识探索怎么写,计算机基础知识及探索.doc
  8. 在matlab中ungetfile后,11条Matlab实用小技巧
  9. Python笔记-相关性分析(连续变量和分类变量)
  10. Kafka与.net core(一)安装
  11. java 模拟ping_模拟Ping操作的一个Java类
  12. 霍兰德SC型如何选专业?霍兰德职业兴趣测试
  13. php提取pdf中的文字,如何提取pdf中的文字内容 如何从pdf中提取文字
  14. [COGS2287][HZOI 2015]疯狂的机器人(NTT)
  15. 考研常考知识点(复试)
  16. 王欣复出后的第一款产品
  17. MySQL按中文排序
  18. platform创建说明
  19. conda安装第三方库
  20. SQL Server收缩数据库

热门文章

  1. Java字符串转Json对象
  2. idea突然很卡解决办法
  3. centos7配置ip地址(centos7配置ip地址)
  4. 【记录】在win10系统上安装ubuntu(乌班图)双系统
  5. 如何备份MySQL数据库
  6. CSS Sprites(精灵图)
  7. 《工程伦理》网课第十章课后习题答案
  8. python基于web的安装程序_python web.py安装使用
  9. BERT微调(SQuAD v1.1)
  10. Encountered end of file