0%

《深入理解计算机系统》读书笔记-05

条件分支的两种实现方法

  1. 控制的条件转移(条件控制)

    通过直接改变控制流,来实现条件分支

  2. 数据的条件转移(条件传送)

    通过对各分支无条件运算,根据条件选取结果,来实现条件分支

    更符合现代处理器的性能特性,充分利用了处理器时间,避免由于空等或分支预测错误的惩罚造成处理器性能的浪费。但使用条件受限,要慎重使用。只有当各分支没有其他副作用时,才可考虑选择条件传送。

阅读全文 »

Python 之装饰器

1. 概念介绍

装饰器(decorator),又称“装饰函数”,即一种返回值也是函数的函数,可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下,实现额外的功能。最基本的理念来自于一种被称为“装饰模式”的设计模式。

阅读全文 »

Python 之引用

1. 引用简介与工具引入

Python 中对于变量的处理与 C 语言有着很大的不同,Python 中的变量具有一个特殊的属性:identity,即“身份标识”。这种特殊的属性也在很多地方被称为“引用”。

为了更加清晰地说明引用相关的问题,我们首先要介绍两个工具:一个Python的内置函数:id();一个运算符:is;同时还要介绍一个sys模块内的函数:getrefcount()

阅读全文 »

CSDN上markdown文档图片显示问题

刚刚上传了一篇博客到 CSDN,因为使用的本地编辑器是Typora,本身支持HTML语法,用习惯了之后也喜欢在markdown之外再定制一些显示格式。

在显示图片失败的文章中我是用的img标签来定制图片的缩放大小,在Typora中显示完全正常,因此也就没有多想直接上传了。但上传之后查看效果才发现三张图片都无法正常显示,于是赶紧排查原因。

阅读全文 »

HEXO博客使用LeanCloud报错“Counter not initialized! See more at console err msg.”

CSDN 的 Markdown 编辑器好像不像Typora那样能够正确渲染 .md 文档中夹杂的 HTML 标签,所以导致之前以 HTML 语法插入的图片在 CSDN 上无法正确显示

具体问题

在根据文档配置好LeanCloud并完成部署之后,刷新博客网页,在主页看到每篇文章的阅读次数都显示为0,而打开每篇文章的相应页面更是发现错误信息:Counter not initialized! More info at console err msg.

阅读全文 »

CSAPP读书笔记-02

浮点数陷阱

在第二章最初,给出了“浮点运算是不可结合的”这样一个结论,乍一看有点令人费解,但仔细看了看例子,发现其实结合浮点数在内存中的存储方式反而很容易理解,不过就是这种表达很容易让人误会,颇不可取。

实际上由于浮点数在内存中存储时,计算机存储的是它的尾数,因此在一个数的基础上,给它加上或者减去太小的浮点值,都会导致最终产生截断,表现出来就是“什么也没有发生”的效果。

阅读全文 »