Finding Bugs using Path-Sensitive Static Analysis0 码力 | 35 页 | 14.13 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针uintptr_t:自动随系统位数决定大小 • 刚刚说过,计算机的位数决定了内存地址的大小。 - 而指针的本质就是内存地址,所以指针的大小在 32 位系统上就 32 位,64 位系统上就 64 位。 • 稍后我们再来详细讲解一下指针,有时候我们需要把指针的地址值存在整型变量里。 • 而 32 位平台上的指针是 32 位,64 位平台上的指针是 64 位。 所以是不是需要根据当前平台来判断要使用哪一种代码了? - 不需要,可以用自动随系统位数变化的 \text{sizeof}(\text{void}^{*}) = \text{sizeof}(\text{uintptr\_t})$ ## size_t :表示大小的整数类型,其实等价于 uintptr_t • 除了指针需要随系统位数变化之外,数组的长度也是需要随系统位数变化的。 • 如果 64 位系统上 size_t 还是 uint32_t,那就无法表示超过 4GB 大小的数组了。 - 今日乳 ja 笑话:java 0; 8 } ## printf 的错误:不会编译时检测参数类型是否正确 - 第一个 bug 是,printf 其实不知道他的参数是什么类型,他只看到你字符串里写的 “%f”,会误以为输入的是 float 参数。 - 如果你输入的是 3 这样的 int 类型常量,C 语言不会帮你检测到他和 “%f” 其实是不匹配的,而是直接把 int 类型的 4 个字节推到栈上作为0 码力 | 128 页 | 2.95 MB | 2 年前3
Kubernetes 异常配置检测框架## Kubernetes 异常配置检测框架 顾静, 阿里云 邓隽, 阿里云 ## 我们来自阿里云容器服务 • 顾静,研发工程师 • 邓隽,技术专家 ## 我们参与打造 • 容器服务(ACK/ASK) • 容器镜像服务(ACR) • 服务网格(ASM) 1 Kubernetes 典型异常 2 检测框架演进 3 生产实践 4 总结 ## Kubernetes 使用日常 无法正常工作  ## 异常 VS 异常检测 操作系统  云原生操作系统 ! /2/c/2/2/2c2253c24c549730b3268623bb96b599/p7_3.jpg) ## 运行模式 • 集群节点(DaemonSet / Standalong) ## 问题检测 • 硬件(CPU、内存、磁盘) • 操作系统(NTP、内核死锁、文件系统异常) • Container Runtime(无响应)  但一般意义上的指针分析是NP-hard问题 智能指针可行,但作为运行时方案,效率低 ■ Rust在语法设计中引入所有权机制,简化指针分析问题 ## Rust所有权模型 => XOR Mutability怎么办? ☐ 以双向链表为例,中间节点被前后两个节点访用 ☐ Rust为了提升可用性所做的妥协 智能指针(性能损失) ☑ 允许使用裸指针(unsafe模式) next prev next prev next prev • 逃逸编译器的借用检查 => 指针别名 struct List{ val: u64, prev: Option>> 0 码力 | 28 页 | 1.55 MB | 2 年前3
机器学习课程-温州大学-09深度学习-目标检测## 深度学习-目标检测 黄海广 副教授 2023年04月 ## 本章目录 01 目标检测概述 02 目标检测算法 03 YOLO算法 04 Faster RCNN算法 ### 1. 目标检测概述 01 目标检测概述 02 目标检测算法 03 YOLO算法 04 Faster RCNN算法 ### 1. 目标检测概述  分类任务关心整体,给出的是整张图片的内容描述,而检测则关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息。 分割(Segmentation) 分割包括语义分割(semantic segmentation)和实例分割(instance segmentation),前者是对前背景分离的拓展,要求分离开具有不同语义的图像部分,而后者是检测任务的拓展, 的轮廓(相比检测框更为精细)。   ### 1. 目标检测概述 ## 目标检测和识别0 码力 | 43 页 | 4.12 MB | 2 年前3
Qcon北京2018-《以Null的处理、回调地狱的应对为例,看C#背后的问题解决思路》-Mads+Torgersen0 码力 | 32 页 | 2.66 MB | 2 年前3
领域驱动设计&中台/领域驱动架构透析与架构解耦## 领域驱动 架构透析与架构解耦 张逸 DDCHINA ## 内容 01 领域的边界 02 领域驱动架构的演进 03 DDD与C4模型 04 DDD与RUP 4+1视图 ## 领域的边界 ## 整洁架构  ## 六 边形架构 与基础设施的解耦  ## 与基础设施的解耦  ## 前后端的解耦  ## 目录 1. 微服务拆分工具 2. 契约管理工具 ## 微服务架构的优势 |因素|单体架构|微服务架构| [Image](/uploads/documents/4/9/c/a/49ca2158409ddf427feee5abd6c6204c/p8_7.jpg) 步骤2:通过表结构调整,将不同的数据库进行解耦,防止一个微服务跨库访问(反范式、服务重构等) 步骤3:大表水平拆分,实现水平扩展,提升访问速度(分区分库) App Engine)方面的应用(第 20 章)。在本书的最后一章(第 21 章),我们会讨论一些在全世界范围内已经将 Go 语言投入实际开发的公司和组织。本书将会在最后给出一些对 Go 语言爱好者的引用,Go 相关包和工具的参考,以及章节练习的答案和所有参考资源和文献的清单。 Go 语言有一个被称之为 “没有废物” 的宗旨,就是将一切没有必要的东西都去掉,不能去掉的就无底线地简化,同时追求最大程度的自动化。他完美地诠释了敏捷编程的 语言的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡,从而使编程变得更加有趣,而不是在艰难抉择中痛苦前行。 因此,Go 语言是一门类型安全和内存安全的编程语言。虽然 Go 语言中仍有指针的存在,但并不允许进行指针运算。 Go 语言的另一个目标是对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机,这一点对于谷歌内部的使用来说就非常重要了。设计者通过 goroutine darwin、freebsd、linux 或 windows。 - $GOBIN 表示编译器和链接器的安装位置,默认是 $GOROOT/bin,如果你使用的是 Go 1.0.3 及以后的版本,一般情况下你可以将它的值设置为空,Go 将会使用前面提到的默认值。 目标机器是指你打算运行你的 Go 应用程序的机器。 Go 编译器支持交叉编译,也就是说你可以在一台机器上构建运行在具有不同操作系统和处理器架构上运行的应用程序,0 码力 | 380 页 | 2.97 MB | 2 年前3
Go 入门指南(The way to Go)Go 程序的基本结构和要素 4.3 常量 4.4 变量 4.5 基本类型和运算符 4.6 字符串 4.7 strings 和 strconv 包 4.8 时间和日期 4.9 指针 第5章:控制结构 5.1 if-else 结构 5.2 测试多返回值函数的错误 5.3 switch 结构 5.4 for 结构 5.5 Break 11.2 接口嵌套接口 11.3 类型断言:如何检测和转换接口变量的类型 11.4 类型判断:type-switch 11.5 测试一个值是否实现了某个接口 11.6 使用方法集与接口 11.7 第一个例子:使用 Sorter 接口排序 11.8 第二个例子:读和写 11.9 空接口 11.10 反射包 11.11 发生错误时使用 defer 关闭一个文件 16.4 何时使用 new() 和 make() ## 第 17 章 模式 16.5 不需要将一个指向切片的指针传递给函数 16.6 使用指针指向接口类型 16.7 使用值类型时误用指针 16.8 误用协程和通道 16.9 闭包和协程的使用 16.10 糟糕的错误处理 模式 17.1 关于逗号ok模式 出于性能考虑的实用代码片段0 码力 | 466 页 | 4.44 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













