自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 小端机器上读取数值、字符串到寄存器的实现

所以与从内存中读取的区别是,寄存器直接读取数值型常量时,需要知道我这次不是从内存中读,对于常量数值,得手动逆序读取字节。对于字符串,为了让其能以原序存于内存中,需要以与内存相反的方向存于寄存器中,这样从内存读入寄存器后,才是正确的顺序。这里的字节读取顺序仅为易于理解,实际上寄存器的值是一次读取完的,不存在读取了一半的情况。即从reg的低位往高位处理:

2023-07-05 17:12:30 440

原创 为什么四舍五入是trunc(x±0.49999997)而不是trunc(x±0.5)?

此时,假设有float值x=2^22+1.0,对其进行四舍五入的舍入预期值为x本身,但实际舍入会执行floor(x+0.5),但x+0.5这个值并不能用float精确表示,系统会对其进行舍入后再表示,此处的舍入是中值向偶数舍入的就近舍入,x+0.5正好是2^22+1.0与2^22+2.0的中值,向偶舍入则会舍入为2^22+2.0,对2^22+2.0执行floor依然是2^22+2.0,得到的结果与预期值不符。0.49999997会就近舍入到x,floor(x)=x,结果正确,不会有+0.5的漏洞。

2023-07-05 14:46:37 253

原创 2. 信息在计算机中存储的格式

8位,是最小的可寻址内存地址。每台计算机的字长,指明了指针数据的标称大小,也决定了虚拟地址空间的最大值。对于w位的机器而言,最多访问2^w个字节。如32位机器可访问2^32=4,294,967,296Byte≈4G字节,即4GB。64位可访问约16EB。(使用gcc编译时,带上参数-m32可使代码能同时在64位与32位机器上运行,而-m64的代码只能在64位机器上运行。)

2022-11-15 17:20:44 1161 1

原创 1. 计算机系统概述

性能的提升为 Old time/New time。比如对整体的60%的组件进行耗时优化,优化到这些组件的耗时可以忽略不计,整体性能也就提升1/0.4=2.5X。:通过多个CPU核心或者超线程实现,超线程指一个CPU中有多个PC与寄存器文件,但是只有一个ALU;Amdahl定律表示 要提升系统整体的性能,就得对系统大部分部件的性能进行提升。:通过流水线的方式执行指令实现,可实现1~3个时钟周期完成一条指令操作;:即SIMD,单条指令可以执行多条数据,将单个指令并行执行。

2022-11-15 17:12:38 159

原创 不同字符编码对比

ASCII码使用一个字节编码,但只适用于英文;Unicode定义了字符集,有 17 个 code plane,总共规划了 1,114,112 个 code point。而这些字符可以使用UTF-8、UTF-16或者UTF-32等编码方式进行编码,不同的编码方式所占的字节数不一样。具体的表现形式为:0xxxxxxx:单字节编码形式,这和 ASCII 编码完全一样,因此 UTF-8 是兼容 ASCII 的;110xxxxx 10xxxxxx:双字节编码形式;

2022-11-15 17:08:04 560

原创 11.流复制

流复制将主库的数据备份到备库上,使用的一主多从的架构。(pg虽然提供了备份,但在故障时需要人工设置接管,而不能自动接管,除非使用插件)连接分为四种状态:启动、追赶、流复制、备份(第十章中backup_start与backup_stop之间的备份整个数据库集簇快照的过程)当备库停机后,pg通过复制槽来保留主库中未被流复制到备库的WAL文件,防止WAL段文件被回收(不能从归档日志中读取吗?)。在备库启动后,再继续之前的备份。

2022-11-15 17:05:45 540

原创 10.基础备份与时间点恢复

基础备份与时间线都是为了时间点恢复。

2022-11-15 17:03:34 629

原创 9.WAL

WAL实现过程

2022-11-15 17:02:20 144

原创 8.缓冲区管理器

缓冲区管理器

2022-11-11 13:10:24 467

原创 7.堆内元组(HOT)和仅索引扫描

堆内元组与仅索引扫描

2022-11-11 13:05:14 251

原创 6. 清理过程

清理过程

2022-11-11 13:03:39 413

原创 5.并发控制

事务的并发控制

2022-11-11 12:59:20 584

原创 4.FDW

外部数据包装器

2022-11-11 12:53:14 423

原创 3. 查询处理

查询处理,说明计划器与执行器在单表查询与多表查询时的工作。

2022-11-11 12:51:33 490

原创 1/2.数据库集簇、元组,进程、内存架构

数据库集簇、元组,进程与内存架构

2022-11-11 12:39:52 642

翻译 PostgreSQL中的索引—10(Bloom)

本文的主题是PG数据库的bloom索引。

2022-11-11 12:21:17 438

翻译 PostgreSQL中的索引—9(BRIN)

本文的主题是PG数据库中的BRIN索引。

2022-11-11 12:17:14 1263

翻译 PostgreSQL中的索引—8(RUM)

​目录RUMGIN的局限性短语搜索按相关性排序附加信息其他操作符类索引和预写日志(WAL)的大小属性我们已经讨论了PostgreSQL索引引擎、访问方法的接口,以及主要的访问方法,例如:哈希索引、B树、GiST、SP GiST和GIN。在本文中,我们将观察杜松子酒如何变成朗姆酒(GIN如何变成RUM的)。RUM尽管作者声称GIN是一种强大的精灵,但酒类的主题最终赢得了胜利:下一代GIN被称为RUM(朗姆酒)。这种访问方法扩展了GIN的基本概念,使我们能够更

2022-03-04 17:58:13 853

翻译 PostgreSQL中的索引—7(GIN)

目录GIN一般概念全文检索查询示例更新缓慢的问题部分匹配的搜索频繁词和不频繁词限制查询结果紧凑表示GiST还是GIN?数组JSONB内部构件属性其他数据类型我们已经熟悉了PostgreSQL索引引擎和访问方法的接口,并讨论了哈希索引、B树以及GiST和SP GiST索引。本文将以GIN索引为特色。GIN“Gin?..Gin似乎是一种美国酒..”“我不是酒鬼,哦,好奇的孩子!”老人又一次勃然大怒,他又一次意识到自己,又一次控制住自己。

2022-03-04 12:10:27 3618

翻译 PostgreSQL中的索引—6(SP-GiST)

目录SP-GiST架构示例:四叉树内部构件示例:k维树内部构件示例:基数树内部构件属性NULL其他数据类型我们已经介绍了Postgresql索引引擎、访问方法接口和三种方法:哈希索引、B树索引和GiST。在这边文章中,我们将描述SP-GiST。SP-GiST(通常用于多维空间)首先,对这个名字说几句话。“GiST”部分暗示了与同名访问方法的一些相似之处。这种相似性确实存在:两者都是通用的搜索树,为构建各种访问方法提供了框架。“SP”代表空间分区。这

2022-03-03 15:40:22 775

翻译 PostgreSQL中的索引—5(GiST)下

"btree_gist"扩展让我们把问题复杂化。我们扩大了我们卑微的生意,我们打算出租多间小屋:postgres=# alter table reservations add house_no integer default 1;我们需要改变排他约束,以便将门牌号考虑在内。但是,GiST不支持整数的相等运算:postgres=# alter table reservations drop constraint reservations_during_excl;postgres=# a

2022-03-02 18:28:19 545

翻译 PostgreSQL中的索引—5(GiST)上

在之前的文章中,我们讨论了PostgreSQL索引引擎、访问方法的接口,以及两种访问方法:哈希索引和B树。在本文中,我们将描述GiST索引。GiSTGiST是“广义搜索树”的缩写,这是一个平衡搜索树,就像之前讨论的B树一样。有什么区别?“btree”索引与比较语义严格相关:它只支持“大于”、“小于”和“相等”运算符(但功能非常强大!)然而,现代数据库存储的数据类型,如地理数据、文本文档、图像等等,对于这些操作符来说毫无意义。但GiST索引方法对这些数据类型有帮助,它允许定义一条规则,将任意类

2022-03-02 16:04:19 1104

翻译 PostgreSQL中的索引——4(B树)

我们已经讨论了PostgreSQL的索引引擎和访问方法的接口,以及哈希索引(一种访问方法)。现在我们将考虑最传统以及使用最广泛的索引——B树。文章很长,所以有点耐心。B树架构B树索引类型,实现为“btree”访问方法,适用于可以排序的数据。换句话说,数据类型必须定义的大于、大于等于、小于、小于等于和等于操作。注意,相同的数据有时可以有不同的排序方法,操作符族中提到过这一点。通常,B树索引行被打包到页面中。在叶页面中,这些行包含要索引的数据(键)和对表行的引用(TID)。在内部页面中,每一..

2022-02-28 10:19:45 1587

翻译 PostgreSQL中的索引——3(Hash)

第一篇文章描述了PostgreSQL索引引擎,第二篇处理访问方法的接口,现在我们准备讨论具体类型的索引。让我们从Hash索引开始。Hash架构一般理论很多现代编程语言将哈希表作为基本数据类型。从外观上看,哈希表看着像一个常规数组,它使用任何数据类型(例如字符串)而不是整数进行索引。在PostgreSQL中,哈希索引的结构与此类似。它是怎么工作的呢?通常情况下,数据类型的允许值范围非常大:在“text”类型的列中,我们可能会看到多少不同的字符串?同时,在某个表的文本列中实际存储了多少不同.

2022-02-22 17:09:50 2461

翻译 PostgreSQL中的索引——2(访问方法的接口)

目录接口操作符类与族系统目录接口在第一篇文章中,我们提到,访问方法必须提供自我的信息。让我们看看访问方法接口的结构。属性所有访问方法的属性都被存储在"pg_am"表中(“am”表示access method,访问方法)。我们同样可以从这张表中获取可用方法的列表:postgres=# select amname from pg_am; amname-------- btree hash gist gin spgist brin(6 rows)尽管顺序扫

2022-02-11 15:44:09 473

翻译 PostgreSQL中的索引——1

本文翻译自:Indexes in PostgreSQL — 1 : Postgres Professional目录介绍索引索引引擎主要扫描技术索引扫描位图扫描顺序扫描NULL多字段索引表达式上的索引(函数索引)部分索引排序并行构建介绍这一系列的文章与PostgreSQL中的索引非常相关。任何的学科都可以从不同的角度考虑,我们将讨论一些让使用DBMS的应用开发人员感兴趣的事:哪些索引是可用的,为什么有这么多种,以及如何使用它们来提升查询速度。

2022-01-13 16:13:29 1617

转载 IP地址漂移的原理与实现

当前备份软件比较流行,其中用到的关键技术是IP地址漂移,实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效。举例说明:假设最简单的主从方式、单网卡的情况下,双机系统要占用3个网络地址。主机一地址为200.10.20.1,主机二的地址为200.10.20.2,同时,还应该有一个“虚拟”IP地址,该地址为工作IP地址,用来做“漂移”,即工作地址为200.10.20.3。...

2021-11-17 11:27:06 3521

原创 SCTP为什么不需要time_wait

There is no need to maintain state information in this case.RFC 4960defines a sort of default handling for unknown (out of the blue) packets.Let’s say, you have two sides in your association: side A and side B. v1/v2 are verification tags used by these..

2021-08-13 09:16:53 139

原创 杂记-C基础1

C/C++如何得到int型最大值 //内存中为00000000 00000000 00000000 00000000unsigned int zero = 0;//取反就变成了最大值4294967295 (0~2^32-1),//内存中为11111111 11111111 11111111 111111111unsigned int a = ~zero;//有符号的整形,正数只占一半,所以除以二就得到了有符号整形的最大值4294967295/2,//正好正数比负数少一位,以7结尾,..

2021-08-06 13:15:15 78

转载 服务器的RAID

一般的电脑是否支持RAID主要看主板是否支持,进入BIOS系统看看,RAID一般用于服务器的数据存储,与数据库有关,一般的电脑笔记本默认没有RAID,要用RAID首先得有多块磁盘,但是一般电脑只有一块磁盘,进行分区才显示了CDEF盘。RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为廉价磁盘冗余阵列。RAID就是一种由多块硬盘构成的冗余阵列。虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。利用RAID技术于存储系统的好处.

2021-07-05 09:28:15 595

原创 杂记 - C基础0

按文件大小读取文件 不清楚文件的大小时,先读取文件大小(所占的字节数,不是字符长度),再动态分配空间给字符串,以已知的大小读取文件所有内容:如何用C语言获取文件的大小_百度知道 (baidu.com) fopen与open的区别 fopen、fread、fwrite属于缓冲文件系统,是库函数,缓冲区的大小影响速度,推荐使用。返回FILE指针open、read、write属于非缓冲文件系统,是系统调用,只能以二进制形式读写,速度快。返回Int型的文件描述符,对于一些设备文件只能使用这个,..

2021-06-29 15:33:14 82

原创 杂记-Linux

使用 ssh IP 连接虚拟机,之后会提示给密码。使用logout或者ctrl+D断开与虚拟机的连接(需要先stop数据库)。在vim中选择字符,一般模式下,先按g再按a会显示该字符的16进制点击ctrl+v进入可视模式,可以选中一列进行删除\增加字符操作:vim的列编辑操作 - 小望 - 博客园 (cnblogs.com)...

2021-06-29 10:44:33 105

原创 SQL基础

在写sql语句时,可以任意换行,但在语句间不能有空行在执行select语句时,系统先执行where语句,再在结果集中执行select语句。sql的注释有两种

2021-06-15 15:38:51 201

原创 杂记(git标签,echo命令,ps命令,gdb调试)

git可以给一个重要 commitGit 标签 | 菜鸟教程 (runoob.com)

2021-06-11 16:56:40 1883

原创 C复制文件杂记

strlen与sizeof的区别: strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 而sizeof()返回的是变量声明后所占的内存数,不是实际长度。 ...

2021-06-10 18:23:04 91

原创 git的使用

工作区:位于本机,就是最底层的修改,直接的修改。一般的操作不需要git命令,只有与git有关的,如添加文件跟踪(添加文件到暂存区):git add 文件名暂存区:使用

2021-06-08 18:12:09 153

原创 unity使用 form.showDialog() 函数,打包后出现空指针错误 的解决方法

需要实现一个unity打开文件/文件夹选择框,一开始使用:path = UnityEditor.EditorUtility.OpenFilePanel("Load Images of Directory", UnityEngine.Application.dataPath, extion);方法实现,但是这种方法只在编辑器里起作用,不能导出exe。于是使用:using System.Windows.Forms;OpenFileDialog dialog = new OpenFileDi

2021-04-22 15:28:55 653 2

原创 以自己的电脑作为服务器,搭建网站,外网可访问

首先配置tomcat服务器在eclipse里关联tomcat服务器编写web项目,写一个网页此时在自己的电脑上是可以通过三种方式访问该网页的:ip地址:8080、localhost:8080、或者192.168.1.104(我的内网ip地址):8080(上面不会的可以在其他地方查)其他设备想要访问该网页1.需要在同一个内网上,如连一个wifi2.服务器需要打开至少一个端口共其他设备访问,具体操作:https://jingyan.baidu.com/article/09ea3ede7311

2020-08-06 21:00:02 10281

原创 Unity中的渲染优化

造成Unity渲染瓶颈的原因可能是CPU(物理模拟、过多的drawcall)GPU(过多的顶点计算(顶点多、逐顶点光源多)、过多的片元计算(分辨率大、多次overdraw(半透明、屏幕后处理、渲染顺序))、实时渲染)内存(尺寸大且未压缩的纹理、静态批处理、分辨率过高的帧缓存(实时渲染))等因素。优化的主要手段有静态批处理、动态批处理减少顶点计算(建模时就要考虑尽量减少顶点数、模型LOD(需要建模人建不同精度的模型)、遮挡剔除)减少片元计算(控制绘制顺序、减少实时光照(最多使用

2020-05-28 13:12:08 406

原创 第二章:一切都是对象

“如果我们说另一种不同的语言,那么我们就会发觉一个有些不同的世界”java相比于C++是更纯粹的面向对象的程序设计语言,C++之所以不那么纯粹是因为要支持与C语言的向后兼容。java中大部分数据类型都是引用类型,是基于间接操纵对象。java中数据的存放,寄存器(你不能直接控制)、堆栈(引用变量、值类型,系统需要知道存储在内的生命周期,以便上下移动指针释放分配内存)、堆(对象、值,编译器...

2020-01-16 16:07:03 158

唯一解的数独题目生成器

Sudoku 唯一解的数独题目生成器,具体讲解请移步:https://blog.csdn.net/Michaelia_hu/article/details/103390255

2019-12-04

KMP算法的java实现.txt

KMP算法的java实现,KMP详细解说请移步:https://blog.csdn.net/Michaelia_hu/article/details/100888201

2019-11-29

一个比较通用的网站主页面

网页的效果与讲解请移步博客:https://blog.csdn.net/Michaelia_hu/article/details/89158661

2019-04-11

简约风格网页仿写

网页的效果与实现讲解请移步我的博客:https://blog.csdn.net/Michaelia_hu/article/details/89217733

2019-04-11

在Unity中测量显示空间距离

在Unity中用GL库实现一个测量显示空间距离的功能,项目效果及解说请看:https://mp.csdn.net/postedit/87932866

2019-02-26

中科院ICTCLAS50_Windows分词

中科院ICTCLAS50_Windows分词,内含32位与64位,能智能地将一段文字分解成词语,可以用于翻译,比如要翻译一段话,机器如何知道那几个字是一个词呢?就需要先通过分词,再翻译,当然现在智能的翻译肯定不是逐词翻译啦,但是自己写个翻译程序玩玩还是可以用得上的。

2019-01-02

牛津英汉词典 .txt版

牛津英汉词典 .txt版,主要用于java或其他语言编写翻译词典,当然也可用作一般查询,但是不推荐用作一般的查询,用txt作词典的话为什么在百度上查或者下个有道翻译呢。

2019-01-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除