Node.js在YunOS中的最佳实践
Node.js在YunOS中的最佳实践 叶敬福 1 摘要 • YunOS: 万物互联 • YunOS选择Node.js • Node.js在YunOS中的最佳实践 – 对IO优先的Looper机制的改造和优化 – SAB + Worker机制的实践 – 性能优化的实践 2 3 万物互联 4 Cloud App应用场景化 5 CloudApp 与V8强绑定,解耦或升级很困难 (naZve调用强依赖V8接口) ? CPU密集的计算场景中存在性能问题 (单线程,事件驱动,GC效率低) ? Node.js在YunOS中的最佳实践 10 对IO优先的Looper机制的改造和优化 难点: 1. Node.js的消息循环机制完全由IO事件来驱动 2. 终端设备的场景在UI渲染及非IO任务的及时响应的需求 Node js Queue uv_async_t YunOS对Looper改造的实践 1. 系统任务与Node.js的IO任 务融合,两者地位基本平等, 系统任务优先级略高 2. 系统任务通过异步事件接 入Node.js的队列中 12 SAB + Worker机制的实践 YunOS对多任务的需求: 1. 安全沙箱对多进程的限制(不能使用多进程) 2. 实际应用以计算为主(CPU密集),对多任务并行有需求0 码力 | 20 页 | 1.37 MB | 1 年前3华为云分布式事务DTM最佳实践
servicecomb.apache.org github.com/apache?q=servicecomb 华为云分布式事务DTM最佳实践. 王启军 2 github.com/apache?q=servicecomb servicecomb.apache.org 王启军,华为云PaaS团队架构师,负责微服 务框架的开发。曾任当当网架构师,主导电商平台 架构设计;曾就职于搜狐负责手机微博的研发。0 码力 | 15 页 | 3.10 MB | 1 年前3付钱拉金融云系统架构演进和最佳实践
系统架构演进和最佳实践 SPEAKER 冯忠旗 分享者 冯忠旗 SHARER 付钱拉高级技术经理 讲点儿什么 SPEAK SOMETHING 演进之路 THE PATH OF EVOLUTION 01 业务模型 • 一无所有的初创期,单一架构轻装上阵 • 石器到工业的跃进,分布式架构保驾护航 • 化整为零,应对雪崩效应分而治之 • 从1到N的业务成长 02 架构演进过程 架构演进过程 03 最佳实践-如何早于 用户发现问题 04 不忘初心 继续前进 01 业务模型 BUSINESS MODEL BUSINESS MODEL 业务模型 BUSINESS MODEL 服务/方案 基础产品 基础支撑 金融云服务 聚合支付 乐享理财 帮你贷 八方数据 … 资金管理 供应链 分期支付 扫码分销 … 基础支付1 SDK支付 扫码支付 分期支付 比特币 银行卡 供应链 征信 … 数据分析 … 运营后台 用户系统 商户后台 官网 企业网银 个人网银 解决方案 实时监控 业务属性 BUSINESS ATTRIBUTES 实时性、一致性 安全性、中间账户 聚合的复杂性、第三方依赖性 金融系统 The complexity of aggregation, third-party dependency Financial system0 码力 | 35 页 | 6.05 MB | 1 年前3杜逸先 使用 VS Code 开发 Python 项目的最佳实践
使用VS Code进行Python开发 的最佳实践 杭州美登科技 杜逸先 目录 CONTENTS 什么是VS Code VS Code与Python 最佳实践 提问时间 什么是VS Code 什么是VS Code 什么是VS Code 什么是VS Code 1. 开源+跨平台 2. 轻量级+丰富的插件生态 3. 开箱即用+高度自定义(颜色主题、按键绑定、版本控制工具等) Code与Python——Jupyter Notebook VS Code与Python——Jupyter Notebook 最佳实践 最佳实践 最佳实践——项目管理 最佳实践——Git 增强(Git Graph) 最佳实践——Git 增强(Git Lens) 最佳实践——协作开发(VS Live Share) 最佳实践——远程开发(Remote Development) 提问时间 THANK YOU 二维码0 码力 | 46 页 | 2.65 MB | 1 年前3C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践
Zeno 中的现代 C++ 最佳实 践 项目地址: https://github.com/zenustech/zeno by 彭于斌( https://github.com/archibate ) Zeno 节点系统 1.0 Zeno 节点系统 2.0 • Zeno 2.0 所在的分支: https://github.com/zenustech/zeno/tree/zeno2 • Zeno 的对象,如果类型不是 T ,则出错。 NumericObject 的定义 • NumericObject 是基于 std::variant 的。 • 注意他的 get 成员函数,这和 std::get 相 比更安全,例如 value 是 int 类型,但用 户却调用了 get。则这里 is_constructible 是 true ,不会出错,而是 会自动把 float 转换成 int 0 码力 | 54 页 | 3.94 MB | 1 年前3Cmake 实践
Cmake 实践 Cmake Practice --Cjacker 前言: cmake 已经开发了 5,6 年的时间,如果没有 KDE4,也许不会有人或者 Linux 发行版 本重视 cmake,因为除了 Kitware 似乎没有人使用它。通过 KDE4 的选型和开发,cmake 逐渐进入了人们的视线,在实际的使用过程中,cmake 的优势也逐渐的被大家所认识,至 少 KDE 的开发者们给予了 的定义,这显然是错误的,这样的定义永远不可能有效,正确的定义 是 FOO_FIND_QUIETLY “ ” 。种种原因,促使我开始写一份 面向使用和实用 的 cmake 文档, 也就是本教程《cmake 实践》(Cmake Practice) 本文档是边学习边编写的成果,更像是一个学习笔记和 Tutorial,因此难免有失误 或者理解不够透彻的地方,比如,我仍然不能理解为什么绝大部分使用变量的情况要通过$ pkgconfig,您在实际使用中会有所 体会,虽然有一些扩展可以使用,但并不理想。 4,个人的建议: 1,如果你没有实际的项目需求,那么看到这里就可以停下来了,因为 cmake 的学习过程就 是实践过程,没有实践,读的再多几天后也会忘记。 2,如果你的工程只有几个文件,直接编写 Makefile 是最好的选择。 3,如果使用的是 C/C++/Java 之外的语言,请不要使用 cmake(至少目前是这样)0 码力 | 47 页 | 264.27 KB | 1 年前3基于静态分析的Rust内存安全缺陷检测研究
基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 报告日期:2022.11.25 复旦大学 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 Rust语言 ❑ 系统级安全编程语言 ▪ 内存安全 ▪ 并发安全 ▪ 效率 2006年 2011年 Foundation成立 2020年 2021年 Mozilla裁员Servo团队 AWS, Huawei, Google, Microsoft, Mozilla… Rust如何保障内存安全? ❑ 内存安全问题产生的主要原因之一是指针别名导致悬空指针 ▪ 手动释放内存或调用析构函数 ▪ 函数返回时发生的自动析构或内存释放 ❑ Rust设计的目标之一是编译时检查指针别名(共享可变引用) ▪ 0x012345usize; let r = address as *const i32; } unsafe { risky(); } 调用unsafe函数 定义unsafe函数 Rust的安全哲学 ❑ Safe API无论如何被使用都不应带来未定义行为 ❑ 程序员应避免直接使用unsafe code ❑ Interior unsafe:将unsafe code封装为safe API0 码力 | 28 页 | 1.55 MB | 1 年前3Borsh 安全高效的二进制序列化
第三届中国 Rust 开发者大会 安全高效的二进制序列化 Daniel Wang @ NEAR Borsh • 运行、编码效率 • 确定性 • 跨平台兼容性 二进制序列化的问题 Binary Object Representation Serializer for Hashing • 字节级别确定性 • 执行速度快 Borsh • 轻量级 • 每一个对象与其二进制表示之间都存在一个双射映射0 码力 | 21 页 | 3.35 MB | 1 年前3邓良驹 编写更安全的Python代码
编写安全的Python代码 邓良驹 2019.10.19 思考题 if user.balance >= product.price: user.balance -= product.price ? 目录 CONTENTS 常见不安全代码 代码检查的工具 总结:如何规避风险 常见不安全代码 小心 eval 应对: 在生产环境中,任何情况下都不要使用eval。 import sys "__main__": shellcode = pickle.dumps(ShellExp()) pickle.loads(shellcode) 应对: 绝不对不可信/未认证数据进行unpickle,使用更安全的JSON 或YAML做序列化。必须使用pickle时在沙盒环境执行。 小心 PyYAML 应对: 使用yaml.safe_load,必要时编写自定义 Loader 做更严格的检查。 对不可信来源的序列化检查后操作。 有的甚至是故意、恶意为之。 应对: 谨慎选择第三方 PyPI 包,尽量少导入 PyPI 包; 利用 https://pyup.io/ 等服务保持检查和更新依赖; 利用 Chef InSpect 落实代码安全规范的检查。 *参考资料:“驹说码事” 《如何import一个不存在的对象》 https://mp.weixin.qq.com/s/0_ivKVDU-nKf3r-c96sqrA 利用 Bandit0 码力 | 18 页 | 988.40 KB | 1 年前31 Python在Azure Notebook产品发展中的核心地位 以及通过Visual Studio Code的最佳Azure实践 韩骏
Python 与 Visual Studio Code 在 人工智能应用中的最佳 Azure 实践 韩骏@formulahendry 自我介绍 • 微软研发工程师 @ Visual Studio China • IoT • VS Code • VS Code 代码贡献者 • 多款 VS Code 插件作者 • “玩转VS Code”知乎专栏 & 微信公众号作者 https://zhuanlan0 码力 | 55 页 | 14.99 MB | 1 年前3
共 480 条
- 1
- 2
- 3
- 4
- 5
- 6
- 48