自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

转载 Linux Debugging(五): coredump 分析入门

作为工作几年的老程序猿,肯定会遇到coredump,log severity设置的比较高,导致可用的log无法分析问题所在。 更悲剧的是,这个问题不好复现!所以现在你手头唯一的线索就是这个程序的尸体:coredump。你不得不通过它,来寻找问题根源。      通过上几篇文章,我们知道了函数参数是如何传递的,和函数调用时栈是如何变化的;当然了还有AT&T的汇编基础,这些,已经可以使我们...

2018-07-19 19:25:30 246

转载 一次线上问题排查所引发的思考

前言之前或多或少分享过一些内存模型、对象创建之类的内容,其实大部分人看完都是懵懵懂懂,也不知道这些的实际意义。直到有一天你会碰到线上奇奇怪怪的问题,如: 线程执行一个任务迟迟没有返回,应用假死。 接口响应缓慢,甚至请求超时。 CPU 高负载运行。 这类问题并不像一个空指针、数组越界这样明显好查,这时就需要刚才提到的内存模型、对象创建、线程等相关知识结合在一起来...

2018-07-19 18:57:22 239

原创 Linux必会调试分析工具

1、gdb2、strace3、ltrace

2018-07-16 17:19:36 378

转载 C++设计模式-State状态模式

State状态模式作用:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。UML图如下:State类,抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为。ConcreteState类,具体状态,每一个子类实现一个与Context的一个状态相关的行为。Context类,维护一个ConcreteState子类的实例,这个实例定义当前的状态。状态模式主要解决的是...

2018-07-10 11:49:44 1839

转载 设计模式C++实现(15)——观察者模式

转载自: http://blog.csdn.net/wuzhekai1985软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件...

2018-07-09 14:45:12 329

转载 c++11 类默认函数的控制:"=default" 和 "=delete"函数

#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <vector>#include <map>//c++11 类默认函数的控制:"=default" 和 "=delete"函数/*C++ 的类有四类特殊成员函数,它们分别是:默认构...

2018-07-09 11:22:48 969

转载 C++ 工厂模式的总结

工厂模式分为3种,即简单工厂模式、工厂方法模式、抽象工厂模式,其实大同小异,总结下来就是:简单工厂模式:一个工厂,多个产品。产品需要有一个虚基类。通过传入参数,生成具体产品对象,并利用基类指针指向此对象。通过工厂获取此虚基类指针,通过运行时多肽,调用子类实现。// Factory.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include<i...

2018-07-09 11:06:32 323

转载 C++单例模式

单例模式是任何面向对象语言绕不过的,单例模式是很有必要的,接下来我用最朴素的语言来解释和记录单例模式的学习。什么是单例模式?单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。创建一个单例模式的类(初想)一个类只能有一个实例化的对象,那么这个类就要禁止别人new出来,或者通过直接定义一个对象出来class CAR{public: CAR(){} ~CA...

2018-07-05 09:33:11 523

转载 C++内存泄漏的几种情况

1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存;二是在类的构造函数中动态的分配了内存,但是在析构函数中没有释放内存或者没有正确的释放内存2. 没有正确地清除嵌套的对象指针3. 在释放对象数组时在delete中没有使用方括号方括号是告诉编译器这个指针指向的是一个对象数组,同时也告诉编...

2018-07-04 17:54:53 585

转载 如何判断一段程序是由C 编译程序还是由C++编译程序编译的

以下是在论坛中看到的两种解释:(1)如果是要你的代码在编译时发现编译器类型,就判断_cplusplus或_STDC_宏,通常许多编译器还有其他编译标志宏,#ifdef __cplusplus       cout<<"c++";#else       cout<<"c";#endif        如果要判断已经编译的代码的编译类型,就用nm查一下输出函数符号是否和函数名相...

2018-07-04 16:59:39 2118

转载 HTTP 2.0与HTTP 1.1区别

1、什么是HTTP 2.0HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。 2、与HTTP 1.1相比,主要区别包括HTTP/2采用二进...

2018-07-03 10:42:27 1215

转载 c++ 实现hashmap

由于hashmap不是c++ stl中标准实现,这样在跨平台使用时就可能会出现问题,于是想到自己实现一个hashmaphash算法使用开链法解决hash冲突,主要实现了添加,删除,查找几个方法头文件如下hashmap.h#ifndef _HASHMAP_H_#define _HASHMAP_H_template<class Key, class Value>class Ha...

2018-06-30 14:40:02 3306

转载 C++ STL中哈希表 hash_map介绍

0 为什么需要hash_map用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信息,最傻的方法就是取得所有的记录,然...

2018-06-30 11:59:08 783

转载 NLP系列(2)_用朴素贝叶斯进行文本分类(上)

作者:龙心尘 && 寒小阳时间:2016年1月。出处:http://blog.csdn.net/longxinchen_ml/article/details/50597149http://blog.csdn.net/han_xiaoyang/article/details/50616559声明:版权所有,转载请联系作者并注明出处1. 引言贝叶斯方法是一个历史悠久,有着坚实的理论基础...

2018-06-27 17:23:49 1652

原创 python大数据处理常用库

Beautiful Souphttp://beautifulsoup.readthedocs.io/zh_CN/latest/Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.requestshttp://docs.python-requests.org/zh_CN/latest/index....

2018-06-27 16:58:20 4147

原创 Python 词频及常用词频度统计

借助collection模块实现词频及常用词频度统计。#!/usr/bin/python3# _*_ coding:utf-8 _*_import sysimport jiebafrom collections import Counterwith open("./downfile/file7.txt", 'r') as f: text = f.read()f.close()p...

2018-06-27 16:42:10 1121

原创 python3 爬虫爬取blog内容

#!/usr/bin/python3# _*_ coding:UTF-8 _*_import requestsfrom bs4 import BeautifulSoupclass Downloader(object): def __init__(self): self.server = 'https://blog.csdn.net/zhangyun75' self.urls = [] de...

2018-06-26 18:02:22 1131

原创 Ubuntu14.04 elasticsearch 安装配置

一、环境OS:Ubuntu14.04虚拟机1核1G内存java:1.8elasticsearch-6.2.4Elastic 需要 Java 8 环境。如果你的机器还没安装 Java,可以参考这篇文章,注意要保证环境变量JAVA_HOME正确设置。安装完 Java,就可以跟着官方文档安装 Elastic。直接下载压缩包比较简单。...

2018-06-22 16:39:41 1335

转载 Redis容量评估模型

Redis容量评估模型一、redis常用数据结构做容量评估之前,有必要对redis常用数据结构有大概了解。1、SDSredis没有直接使用c语言传统的字符串(以空字符为结尾的字符数组),而是自己创建了一种名为SDS(简单动态字符串)的抽象类型,用作redis默认的字符串。SDS的定义如下(sds.h/sdshdr):struct sdshdr { int len; // 记录buf数组中已使用字节...

2018-06-22 10:47:12 938

原创 redis源码分析1--如何进入待处理的命令

函数调用关系:以set命令为例。main-->aeMain-->aeProcessEvents-->processInputBuffer-->processCommand-->call-->setCommand其中,在processCommand()函数中,通过调用getNodeByQuery()函数实现node的重定向。...

2018-06-22 10:32:55 919

原创 redis集群重新分片(reshard)故障处理(基于redis-4.0.9版本)

按照教程中创建集群方式创建集群:./src/redis-trib.rb create --replicas 1 192.168.2.106:8001 192.168.2.106:8002 192.168.2.106:8003 192.168.2.106:8004 192.168.2.106:8005 192.168.2.106:8006现在需要将192.168.2.106:8002节点中的slot...

2018-06-19 16:54:56 4244

转载 C++的NULL和nullptr

NULL引渡自C语言,一般由宏定义实现,而nullptr则是C++11的新增关键字。在C语言中,NULL被定义为(void*)0,而在C++语言中,NULL则被定义为整数0,编译器一般对其实际定义如下:#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif出现C++和C定义不一致的原因是,在C++中不允许(void*)...

2018-06-12 09:59:07 990

转载 关于SpinLock的更深入理解

0 前言         之前转载过一篇阐述spin_lock的博文,但始终理解不深入,记忆不深刻。今天,花了半天阅读完LDD3的相关章节,有种顿悟的感觉,遂简要记下自己的理解。Btw,LDD3真心是字字珠玑,没有半句废话,而且从这边书可以看出外国人写书非常注重前后的呼应,而国内大多数书都是就事论事,没有体系的感觉,也难以启发人深入思考。(一不小心又吐嘈了一遍,罪过罪过……)另外,关于LDD3真心...

2018-06-11 09:52:30 870

转载 自旋锁(spin lock)与互斥锁(mutex)的比较

自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁。互斥量是阻塞锁,当某线程无法获取互斥量时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放互斥量后,操作系统会激活那个被挂起的线程,让其投入运行。两种锁适用于不同场景:如果是多核处理器,如果预计线程等待锁的时间很短,短到比线程两次上...

2018-06-06 11:33:10 1671

转载 select和epoll 原理概述&优缺点比较

这个问题在面试跟网络编程相关的岗位的时候基本都会被问到,刚刚看到一个很好的比喻:就像收本子的班长,以前得一个个学生地去问有没有本子,如果没有,它还得等待一段时间而后又继续问,现在好了,只走一次,如果没有本子,班长就告诉大家去那里交本子,当班长想起要取本子,就去那里看看或者等待一定时间后离开,有本子到了就叫醒他,然后取走。也许在细节方面不是特别恰当,但是总的来说,比较形象地说出了select和epo...

2018-06-05 14:18:12 724

转载 select函数,poll函数,epoll函数

IO多路复用之select总结1. 基本概念2. select函数3、测试程序IO多路复用之poll 总结poll函数的事件标志符值TCP三次握手,四次挥手讲的比较好的socket中的函数listen解释IO多路复用之epoll总结1、基本知识2、epoll接口3、工作模式4、测试程序对stdin,stdout 和STDOUT_FILENO,STDIN_FILENO的学习IO多路复用之select...

2018-06-05 11:31:29 756

原创 关于Elasticsearch6.2.4遇到的问题

环境:Ubuntu14.04 32bit安装elasticsearch 6.2.4后新建索引时:curl -X PUT 'localhost:9200/accounts' -d '{ "mappings": { "person": { "properties": { "user": { "type": "text",

2018-05-25 17:19:12 1848

转载 面试必备:什么是一致性Hash算法?

最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天突然看到这个,加班为大家整理一下什么是Hash一致性算法,希望对大家有帮助!文末送书,长按抽奖助手小程序即可参与,祝君好运!经常阅读我文章的小伙伴应该都很熟悉我写文章的套路,上来就是先要问一句为什么?也就是为什么要有Has...

2018-05-23 09:52:13 632

转载 从点线面体谈开发到架构师的转型

作者:李艳鹏,现任蚂蚁金服高级技术专家,著有《分布式服务架构:原理、设计与实战》和《可伸缩服务架构:框架与中间件》,曾经在易宝支付、花旗银行、甲骨文、新浪微博、路透社等大型IT互联网公司担任技术负责人和首席架构师的工作,现专注于区块链平台的研发与推广,擅长大规模高并发的线上与线下相结合的第三方支付平台的架构规划与实施。我工作十余年,从负责一个模块,到负责一个产品,再到负责整个支付平台的架构设计,包...

2018-05-11 09:21:41 663

转载 Linux分析apache日志获取最多访问的前10个IP

原文地址:http://xuqq999.blog.51cto.com/3357083/774714 apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数。既然是统计,那么awk是必不可少的,好用而高效。命令如下:awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日...

2018-05-11 08:24:59 551

原创 1、(topK问题)海量日志数据,提取出某日访问百度次数最多的10个IP。

首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文件中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。#include &...

2018-05-11 08:22:02 2166

原创 gdb调试技巧

1、按结构体格式打印set print pretty on

2018-05-10 11:56:54 347

转载 C++的运算符重载

  C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。   运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符...

2018-04-19 14:37:29 685

不同算法特征点的提取

不同算法提取特征点,MATLAB实现,代码调试通过。harris,harris-laplace,log,susan,等等方法

2009-05-08

深入浅出系列之一_WinCVS

介绍了cvs的功能,还有它的简单使用.是出初学者可以学习的好书!

2008-10-31

空空如也

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

TA关注的人

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