- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 奇妙的redis数据结构-adlist
原文链接:redis源码02-adlistredis-adlist双向链表redis 中的双向泛型链表实现, 下面我们重点分析一下redis是如何实现它的双向和泛型, 具体文件为adlist.h和adlist.ctypedef struct listNode { struct listNode *prev; struct listNode *next; void ...
2020-05-06 11:56:34
272
原创 gin教程02
原文链接:gin-gonic教程02获取GET请求的参数在上一篇文章中, 我们写了一个最简单的服务程序, 程序简单的返回了一个json数据, 而在业务开发中,我们经常会通过请求的一些参数来决定如何响应, 这就需要服务程序能够获取请求的参数下面我们来介绍一下如何利用gin.Context获取GET请求中的一些参数main.go文件代码如下, 程序功能很简单, 就是获取请求中的param1...
2020-05-06 10:47:44
315
原创 gin教程01
原文链接:gin-gonic教程01gin-gonicgin-gonic是一个golang语言的web框架, 它提供了和martini类似的API, 同时又有着比它快40倍的性能(据官网所说)安装1.安装govendorgin-gonic需要通过govendor来安装, 所以第一步需要下载govendor, 命令如下# 源码路径在$GOPATH/src# 二进制执行程序路径在$GO...
2020-05-06 10:45:27
338
原创 Ambari集群搭建
一.软件要求1.yum, rpm2.scp curl unzip tar wget3.jdk1.8.0二.前提环境准备2.1 ssh免密生成master机器的ssh密钥# 生成master机器的公钥和密钥[@hadoop.master01.com hadoop_install] ssh-keygen -t rsa修改ssh登陆配置(禁用严格检查主机)...
2018-11-28 19:15:39
1505
原创 业务名词
广告形式物料:是组成推广信息的材料的统称。包括制作的推广计划、推广组、以及选择的关键词和撰写创意。 搜索推广:搜索推广指的是一种按效果付费的网络推广方式。系统根据网民检索词触发客户购买的关键词并且呈现客户推广信息。只有网民点击了解客户的推广信息。系统才向客户进行收费。 网盟推广:充分利用媒体资源进行广告推广,将会给广告主带来巨大的广告展现机会,可以有效提升品牌的知名度并转化为收益。广告形...
2018-11-07 14:02:18
507
原创 获取文本的第a~b行文本
简介有的时候我们需要在获取的文本输出中抽取感兴趣的几行数据,这个时候就可以借助sed命令来很快捷的去实现 例子 我们需要统计一下hadoop的文件系统每个目录所占用的大小,可以借助如下命令来显示hadoop fs -du /输出如下Found 13 itemsdrwxr-xr-x 2 xxx xxx 0 2018-11-07 12...
2018-11-07 14:01:30
301
原创 keepalived配置问题
简介最近在通过keepalived软件实现高可用服务架构的时候,发现自己配置的vrrp_script监控脚本一直无法触发(nginx宕机时候,不切换备份服务器),后来自己手动执行脚本发现是没有问题的。因此断定问题发生的原因应该是在keepalived的配置文件中,经过仔细的检查后,发现问题的原因是由于少了一个空格所导致的 改动前下面这段代码检查了很多遍都没有发现问题,后来发现是由于...
2018-10-02 20:57:06
331
原创 nginx学习笔记-事件处理模型
简介对于一个基本的web服务器来说,事件通常有三种类型 网络事件 信号 定时器 信号的处理对于nginx来说,有一些特定的信号,代表着特定的意义。信号会中断程序当前的运行状态,在改变状态后,继续执行。如果当前正在执行系统调用的时候接收到了信号,则可能导致系统调用失败,需要重入。在nginx的信号处理体系中,如果nginx正在等我事件(epoll_wait),这个时候程...
2018-10-02 20:31:54
319
原创 旋转字符串
描述给定一个字符串和一个偏移量,根据偏移量偏移字符串(从左向右偏移)样例对于字符串 "abcdefg".offset=0 => "abcdefg"offset=1 => "gabcdef"offset=2 => "fgabcde"offset=3 => "efgabcd"挑战在数组上原地旋转,使用O(1)的额外空间解题
2018-09-30 11:03:28
296
原创 Mysql主从架构搭建的时候遇到的问题
问题搭建Mysql主从架构的时候,发现Slave I/O 线程一直运行不起来,后来查看error,发现原来是因为主库和从库的Mysql UUID相同了(这里UUID相同是因为我是直接通过VMWare的克隆来模拟多机实验的)Slave I/O线程状态 Slave I/O 线程未运行起来的原因然后我查看了一下/data/mysql/auto.cnf,确实从库和主库的UUID一致...
2018-09-30 10:26:06
334
原创 Mysql初次安装运行后重设密码
简介在初次登录Mysql的时候,发现什么sql都执行不了,一直提示You must reset your password using ALTER USER statement before executing this statement.说明在执行别的sql语句之前,需要先重置一下数据库用户的登录密码 故障截图 解决办法依次执行以下命令操作即可...
2018-09-24 21:10:43
1296
原创 glog下载、安装、使用
简介最近在学习在程序中加入日志记录系统,通过搜索资料发现了glog这么一个由google开源提供的轻量级日志库,于是便开始了入坑的过程,以下是我学习glog的一点总结glog下载 首先我们要做的就是下载glog的源码1)直接点击github链接《Github/glog源码》进入gibhub页面2)然后点击Clone or download-------->Downlo...
2018-08-14 14:52:19
11939
1
原创 链接过程函数名称改写问题汇总
简介 由于实习时候的疏忽,在使用导出的模块时,发生了大量的LINK ERROR错误,耽误了很长时间非常影响工作进度,所以在此进行函数名称导出时候的问题汇总 链接过程 历史上由于程序员最初编写代码时,是通过在卡片上打孔的方式,所以一旦在其中的增加一行代码或减少一行代码便会导致跳转地址出现错乱,为此人们便想到用符号去代替过程地址,这样便不需要在编写代码的时...
2018-08-09 16:33:26
346
原创 用WPR(Windows Performance Recorder)抓取UI delay并进行分析的示范
简介 关于以下几篇文章中已经提到了如何使用WPT工具包和相关配置的解释 《利用WPT(Windows Performance Toolkit)进行程序的性能分析》 《ETW架构以及WPT(Windows Performance Toolkit)命令行的使用》 《利用WPA进行调用栈追踪(call stack trace)分析》 现在我们就来尝试抓取一个UI dela...
2018-07-30 14:42:12
3643
原创 Xperf工具的使用
简介 在《如何书写自定义的WPRP(Windows Performance Recorder Profile)文件》博文中我们介绍了如何通过书写自定义的配置文件来获取更大的控制权限。在本文中,我们将介绍如何通过Xperf这个工具来实现同样的操作。实际上WPR底层就是基于Xperf这个工具实现的。 Xperf查看支持的Kernel Flag在《如何书写自定义的WP...
2018-07-18 22:38:28
3828
原创 如何书写自定义的WPRP(Windows Performance Recorder Profile)文件
前面我们提到了如何通过wprUI和wpr这两个程序去记录系统状态,但是整个过程中我们都是使用的WPT工具包内建的.wprp文件。如何说我们想要去获得更强的控制权应该怎么做呢?答案就是书写属于我们自己的.wprp文件。 这个文件里面定义了我们需要的 Providers Collectors Profile追踪会话 TraceMergeProperties ...
2018-07-18 18:43:50
1530
原创 利用WPA进行调用栈追踪(call stack trace)分析
简介 在实际开发过程中,我们经常会对开发的程序进行性能测试,从而找到程序的性能瓶颈。那么在找到程序的性能瓶颈之后 ,如何定位性能问题呢,简而言之就是可以直接找出哪一个函数产生了性能开销,如何程序简单之如只有几十行代码,那么可以直接人肉的方式进行定位;但是如果程序大至几十万行代码或者几百万行代码,这个工作量就非常大了。WPT工具包提供给我们了一个非常好的方式去完成这种任务,这种方式称为...
2018-07-17 15:55:40
2322
原创 ETW架构以及WPT(Windows Performance Toolkit)命令行的使用
ETW ETW(Event trace for Windows)是微软提供的追踪和记录由应用程序和内核驱动事件的机制。ETW已经由Windows操作系统实现了,所以我们无需对其编程。并且在此基础上提供给了开发者一些快速、可靠、通用的事件追踪特性。 ETW架构图(取自MSDN) 下面解释一些ETW架构中使用到的概念 Providers(事件提供...
2018-07-16 21:30:45
3851
原创 利用WPT(Windows Performance Toolkit)进行程序的性能分析
Windows Performance Toolkit WPT(Windows Performance Toolkit)是微软提供的一套用于分析程序性能的工具包,它其中包含两个主要的工具 WPR(Windows Performance Recorder)是一个事件记录工具,使用它可以监测系统状态(CPU、磁盘I/O、堆分配、栈调用…),并生成一个.etl(Event trace...
2018-07-16 20:07:16
19924
原创 条款27:尽量少做转型动作
c++规则 的设计目标之一是,保证“类型错误”绝不可以发生。理论上如果你的程序可以很“干净地”(无错误,无警告)通过编译,就表示它并不企图在任何对象上执行不安全、无意义、愚蠢的操作。这是一个极具价值的保证,可别草率的放弃它。 不幸的是,转型(casts)破坏了类型系统(type system)。那可能导致任何各种麻烦,有些容易辨识,有些非常隐晦。C++不同于JAVA,C#,C。在J...
2018-07-13 21:46:13
225
原创 条款20:宁以pass-by-reference-to-const替换pass-by-value
缺省情况下C++以pass-by-value方式传递至函数。除非另外指定否则函数的参数都是以实参的副本为初值。并且调用端所获得的对象也是函数返回值的一个副本。这些副本是由对象的copy构造函数产生的。这就可能使得pass-by-value成为性能开销的操作。class Person{public: Person(); virtual ~Person(); ...pr...
2018-07-13 17:17:40
162
原创 2018/7/11功能点解读
2018/7/11功能点解读换手率 换手率:指成交股数与流通股本之比。 换手率=成交股数÷流通股本换手率=成交股数÷流通股本换手率=成交股数\div流通股本例如:邯郸钢铁公司的流通股本3.2亿,1998年1月22日上市当天成交股数为10919.24万股。因此当日的换手率为34%(10919.24/32000),股价收市为7.91元。换手率高,反映主力大量...
2018-07-11 19:25:23
357
原创 2018/7/10功能点解读
2018/7/10功能点解读开盘和收盘 开盘:每天股市开始交易称为开盘 收盘:每天股市结束交易称为收盘 注: 沪深A股市场开盘时间是周一到周五,集合竞价时间9:15-9:25,连续竞价时间9:30-11:30,正常交易时间13:00-15:00,深市的14:57-15:00是集合竞价时间 港股证券市场开盘时间是周一至周五,开市前时段9:30-10:00,...
2018-07-10 16:18:04
1129
原创 第2章-实例研究: 设计一个文档编辑器--支持多种视感标准
支持多种视感标准 重新定位一个平台不应该花费大量的成本 运行时改变Lexi的外观和感觉 每个窗口的视觉标准一定不一样 对象创建的抽象 我们假定两个窗口组件图元集合来实现多个视感标准: 第一个集合是由Glyph子类构成的 第二个集合是由与抽象子类对应在不同视感标准的具体的子类构成的 注意:很明显Lexi的实现不能直接通过调用C++...
2018-07-08 11:06:47
254
原创 Chapter1: Building Abstractions with Procedures
The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three 1.Combining several simple ideas into one compund one, and thus all complex ideas are made. 2.Th...
2018-06-28 10:13:44
216
原创 第6章-ICP,MRR,BKA
ICP Index Condition Pushdown(ICP)是Mysq使用索引从表中检索行数据的一种优化方式。传统查询流程 存储引擎遍历索引定位行,返回给Server层 Server层对这些数据进行WHERE过滤处理,返回给Client层ICP优化查询流程 存储引擎在遍历索引定位行 存储引擎对这些索引进行WHERE过滤,返回Server层 Se...
2018-06-14 17:59:00
314
原创 条款02:尽量以const, enum, inline替换 #define
尽量以const, enum, inline替换 #defineconst在我们所编写的代码中经常会出现以下预处理命令#define ASPECT_RATIO 1.653 注意:但是这并不是一个好的做法,因为很可能在编译器处理源代码之前,它就被(#undef)了这样就会造成符号名称ASPECT_RATIO没有进入符号表(symbol table)。比如很可能在源代码文...
2018-06-08 20:20:48
213
原创 网易笔试题-地牢逃脱
地牢逃脱 题目 给定一个 n 行 m 列的地牢,其中'.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从(x0,y0) 位置出发,遍历这个地牢。 和一般的游戏所不同的是,他每一步只能按照一些指定的方式遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。 地牢的出口可能在任意某个可以通行的位置上。牛牛想知道出口在最坏情况下,他最少需要多少步才可以离开这...
2018-06-07 19:57:14
654
原创 网易笔试题-魔法神器
魔法神器题目 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需要你帮他设计一个投入方案使他最后恰好拥有n个魔法币 魔法机器1:如果投入x个魔法币,魔法机器会将其变...
2018-06-04 21:03:34
408
原创 第5章-作业--对作业中的进程施加限制
对作业中的进程施加限制代码示例 // 设置作业的一些基本限制 JOBOBJECT_BASIC_LIMIT_INFORMATION jobli = { 0 }; jobli.PriorityClass = IDLE_PRIORITY_CLASS; // 作业的优先级数 jobli.PerJobUserTimeLimit.QuadPart = 1...
2018-06-04 18:33:35
452
原创 第5章-作业--创建作业
函数原型HANDLE WINAPI CreateJobObject( _In_opt_ LPSECURITY_ATTRIBUTES lpJobAttributes, _In_opt_ LPCTSTR lpName);lpJobAttributes 该参数用来指定作业内核对象句柄是否可以继承 如果是NULL, 则会采用默认的安全属性并且...
2018-06-04 17:16:33
276
原创 网易笔试题-合唱团
网易笔试题合唱团题目 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 输入描述: 每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 ≤≤\leq n ≤≤\leq 50),表示学...
2018-06-04 08:38:30
307
原创 第4章-进程--CreateProcess
函数原型BOOL WINAPI CreateProcess( _In_opt_ LPCTSTR lpApplicationName, _Inout_opt_ LPTSTR lpCommandLine, _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, ...
2018-06-02 11:29:02
157
原创 条款01:视C++为一个语言联邦
条款01:视C++为一个语言联邦 今天的C++已经是个多重范型编程语言(multiparaigm programming language), 它同时支持面向过程编程(procedural), 面向对象编程(object-oriented), 函数式编程(functional), 泛型编程(generic), 元编程形式(metaprogramming).C 这一部分...
2018-06-02 09:58:11
1135
原创 第2章-实例研究: 设计一个文档编辑器--修饰用户界面
修饰用户界面 1.文本编辑区域周围加边界以界定文本页. 2.加滚动条让用户能看到同一页的不同部分.注意: 不应该用继承方式将修饰加入到用户界面, 如果其它用户界面对象不知道存在这些修饰, 那么就可以获得最大的灵活性. 使得无需改变其它的类就可以增加和移去这些修饰.继承方式 1.类爆炸现象 2.在运行时对修饰重新安排困难 3.不够灵活 4.不易...
2018-06-01 15:33:13
264
原创 第2章-实例研究: 设计一个文档编辑器--格式化
格式化 将文本分解成行, 将行分解成列. 指定边界宽度, 缩进大小,列的形式, 是否隔行显示以及其它可能的许多格式限制条件. 理想状态下, 我们设计出来的类结构层次应该满足文档结构和格式算法. 比如我们增加一个Glyph子类, 但是不需要考虑修改格式算法, 增加一个格式算法不需要考虑修改子类.基本的Compositor接口 可以将格式化有关的算法接口封闭在Composit...
2018-06-01 14:00:51
314
原创 第2章-实例研究: 设计一个文档编辑器--文档结构
文档结构需要满足的需求 1.保持文档的物理结构.(可以将文本和图形可以放到行,列,表) 2.可视化生成和显示文档 3.根据显示位置来映射文档内部表示的元素.(可以根据用户点击鼠标的位置来判断哪个文档元素被引用)文档物理结构图(摘自设计模式图2-2)文档递归组合对象结构图(摘自设计模式图2-3)部分类Glyph层次图(摘自图2-4)...
2018-06-01 13:39:57
407
原创 第1章-UNIX基础知识
一. 基本概念操作系统内核: 定义: 控制计算机硬件资源, 提供程序运行环境的一种程序. 功能: 为运行于它之上的程序提供服务(内核功能),例如: 执行程序, 打开文件, 读写文件, 分配内存存储区, 获取系统时间.系统调用 定义: 操作系统内核中的功能所提供的API(Application Programming Interface). 功能: 为应...
2018-06-01 13:21:32
191
原创 第1章-Mysql数据库的安装, 启动, 关闭
一.Mysql安装1.安装Mysql2.初始化Mysql3.进入Mysql后, 设置登录密码二.Mysql数据库密码丢失1.查看Mysql进程号, 停止Mysql运行2.加跳过权限表参数, 重启数据库3.修改数据库管理员密码一.Mysql安装1.安装Mysqlshell >groupadd mysql
2018-06-01 10:48:14
364
UNIX环境高级编程英文第三版+源码
2017-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人