自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 C++对象模型读书笔记-- 虚表 virtual table

摘录侯杰《深度探索C++对象模型》 第一章---关于对象 P13 函数定义X foobar(){   X xx;   X* px = new X;    //foo() 是一个virtual function   xx.foo();   px->foo();    delete px;   delete xx;} 这个函数在内部的转化

2015-08-31 16:44:22 485

原创 重构---代码的坏味道

Duplicated Code (重复代码)Long Method  (过长函数)Large Class (过大的类)Long Parameter List(过长参数列)Divergent Change ( 发散式变更)---一个类受多种变化的影响。Shotgun Surgery ---- 一个变化引发多个类的修改。Feature Envy (依恋情结),一个类的方法,大量依赖另一个类的数据。Da

2015-08-24 22:58:58 363 2

原创 重构读书笔记

在一个基础系统上进行增量开发是比较常见的。增量开发的过程中,一方面会因为系统的初始框架有部分不适应新需求而变更,另一方面是维护开发人员更换,编程习惯及能力的差异,对系统的框架理解不一致,在进度的压力下破坏了系统的框架。 无论是哪一种,都有必要阶段性的进行重构,以偿还技术债务。技术债务不断累加的后果,是修改越来越复杂,当适当的修改点越来越难找,犯错的机会越来越大。 读《大话设计模式》时,

2015-08-22 10:58:08 413

原创 数据结构--赫夫曼树(最优二叉村)

赫夫曼树,也称最优二叉树。树的带权路径长度为树中所有叶子节点的带权路径长度之和最短。书上举例多if条件嵌套判断,但由于各个条件出现的概率不一样,优化条件排布的先生顺序,程序运行的总路径长度也不一样,将高概率的条件放在前面,就使总长度最小。 赫夫曼树的原理就是这样, 在程序优化时,可以使用这个原理。 发散:一个if,就可以理解是一次二叉树的分支。运用:使用不等长的码,的确可以减少码流

2015-08-17 21:49:45 483

原创 数据结构——线索二叉树

二叉树的遍历没有线性表快。线索二叉树,利用最末层的子节点左右子节点域为空,用来填充前、后驱。 个人理解, 1) 其实就是把遍历的结果存储起来, 可以节约后续的只读遍历。对于新插入节点,就要重新更新线索二叉树。2) 网上查询了一下线索二叉树的应用,如汽车零部件的拆解。 应用不是很广。

2015-08-15 21:45:47 394 3

原创 数据结构--建立词索引

维护书的基本信息,同时维护书的关键字索引,方便快速查询。用数组维护书的基本信息,有用关键字队列维护书的索引信息。个人理解:      对于实际的应用当中, 一般都会使用数据库来维护信息。 建立两张表,一张主表,这是个横表,记录书的基本信息。 另一种是索引表,这是一个竖表, 记录书的索引信息,在索引字段上建立表的查询索引。 一条横表记录,在竖表中会存在多种索引记录。

2015-08-15 07:07:44 525

原创 数据结构--队列

真的是开卷有益。翻开大学教材——数据结构,温故而知新。银行有四个窗口营业,从早上到晚上不断有顾客。如果窗口空闲,顾客一到就能办理,不然就选择最短的排队,计算一天中顾客在银行逗留的平均时间。 如上图所示,使用数组来维护队列头尾信息,使用双向链表维护请求信息。联想应用:1) 一个请求的统一接入端,使用消息队列来来分发请求到多个处理端。 即接入端维护一

2015-08-15 06:08:24 240

原创 mysql 视图

创建视图的两种方法:1)合并表算法(Merger)2)临时表算法(Temtable)区别在于,临时算法会把结果保存临时表,再返回结果。只要无法在原表记录和视图中建立一一映射,MySql使用临时表。1)视图不能建触发器,不能建索引2)视图性能大多数比表差。

2015-08-12 20:31:41 250

原创 DataTable表的批量插入及自定义导出的使用

场景一:有一数据表,数据量在亿级别,200台终端会插入数据,每次插入数据量在100到800条之间。优化插入数据的性能,采用了DataTable的批量插入SqlBulkCopy。具体步骤:1)动态创建与目标表结构一样的DataTable2)填充数据3)使用SqlBulkCopy类,调用WriteToServer()批量插入场景二:批量导数据工具

2015-08-07 20:30:20 572

转载 Jenkins hash算法

Jenkins hash算法, memcached使用了此算法Jenkins hash,可能是目前能看到的最好的hash算法之一,可以产生很好的分布,缺点是相比其他常见的hash算法更耗时。可以考虑用于hash表的open addressing实现上。如果想了解细节的话,可以去Bob Jenkins的站点看一看。#define hashsize(n) ( 1U #define hash

2015-08-06 20:46:52 4447

原创 六西格玛游戏

游戏一:测量纸块的大小游戏规则:老师分发每桌一把毫米尺,5张大小不一的小纸片(编号)。要求每个人测3次。人和纸片都随机打乱顺序。最后对测量值使用mintab做GR&R分析。结果:我们犯了不少错误。由于纸片的形状不规则,我们没有约定测试点,所以测的不对。毫米尺的精度分辨率不够。 游戏二:投骰子TOC游戏规则:    老师给了一盒棉签和五颗骰子。我们组六个人。第

2015-08-05 21:28:16 1262 1

原创 读书笔记--大话设计模式

《大话设计模式》的确写的很不错。 把晦涩解懂的设计模式,讲的通俗易懂。 边读边用Evernote做笔记,把印象深刻的整理了一下。 先补习一下UML的图示法:继承,接口,组合,依赖,关联 策略模式(Strategy)定义一系列算法,所有算法完成的都是相同的工作,只是实现不同。减少算法与使用类之间的藕合。计费策略会用到很多。工厂模式(Factory Mode)

2015-08-05 20:21:50 515

原创 读书笔记 TCP滑动窗口

以下一个滑动窗口满的例子滑动窗口是接收端用来流量控制的。拥塞窗口是发送端用来流量控制的。1)发送端发了数据包,接收端的滑动窗口满了。2)接收端发零窗口,告诉发送端,暂停发数据。3)发送端接到这个零窗口后,启动一个坚持定时器。4)发送端不确定接收端是不是崩溃了,发送保活报文。查询接收端的状态。5)接收端仍然没有处理完,回零窗口确认。6)接收端数据处理完,给发送端发

2015-08-02 16:18:14 337

原创 读书笔记--TCP连接建立与终止

连接三次握手终止连接四次握手SYN 同步序号FIN 数据发送完成RST 复位连接,回到监听状态PSH 尽可能快将数据送给应用层.  四个标志置零URG 紧急指针ACK 确认序号有效 RST复位报文无论何时“基准连接”(IP与端口指名的连接)出现异常,发RSTTCP半关闭发送与接收,两个方向。都要关闭。  UNIX是

2015-08-02 13:17:07 301

原创 读书笔记--TCP传输的可靠性的体现

TCP的可靠性1 应用数据被分割成最适合发送的数据块。    1.1 MTU(链路层最大传输单元)与网络直接关联。以太网1500.     1.2 分片。 广域网整个传输管道,通常由管道的最狭窄处决定IP不分片报文的大小。    1.3 MSS 在TCP链接建立时,就会互相通知对方自己的MSS, 协商各自的报文大小   1.4  缓冲区的大小,会通过滑动窗口的win l

2015-07-26 16:44:13 343

空空如也

空空如也

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

TA关注的人

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