13 xumaojun

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

Redis源码分析(三)---dict哈希结构

 昨天分析完adlist的Redis代码,今天马上马不停蹄的继续学习Redis代码中的哈希部分的结构学习,不过在这里他不叫什么hashMap,而是叫dict,而且是一种全新设计的一种哈希结构,他只是通过几个简单的结构体,再搭配上一些比较常见的哈希算法,就实现了类似高级语言中HashMap的作用了。也让我见识了一些哈希算法的实现,比如dbj hash的算法实现,俗称times33,算法,就是不停的*...

2019-02-17 17:47:28

Redis源码分析(二)--结构体分析(1)

 继上次的redis源码分析(一)之后,本人开始订制着一份非常伟大的计划-啃完redis源代码,也对他进行了切块划分,鉴于本人目前对他的整个运行流畅还不特别清楚的情况下,所以决定第一个要解决的就是与逻辑无关的代码,也就是一些基本模块,因为是相互独立的,所以不会影响整体的阅读,所以第一个开刀的就是结构体模块了。结构体模块我划分了差不多10个文件的样子,今天看的主要是adlist.c的文件,收获有如下...

2019-02-17 17:46:27

Redis源码分析(一)--Redis结构解析

从今天起,本人将会展开对Redis源码的学习,Redis的代码规模比较小,非常适合学习,是一份非常不错的学习资料,数了一下大概100个文件左右的样子,用的是C语言写的。希望最终能把他啃完吧,C语言好久不用,快忘光了。分析源码的第一步,先别急着想着从哪开始看起,先浏览一下源码结构,可以模块式的渐入,不过比较坑爹的是,Redis的源码全部放在在里面的src目录里,一下90多个文件统统在里面了,所以我选...

2019-02-17 17:45:08

gSoap工具wsdl2h及soapcpp2指令汇总

gSoap开发包的下载地址http://sourceforge.net/projects/gsoap2,在bin目录下提供了两个工具:  1:wsdl2h:The gSOAP wsdl2h tool imports one or more WSDLs and XML schemas and generates a gSOAP header le with familiar C/C++ synt...

2019-01-18 11:20:39

window上ASIO

花了足足3天时间,外加1天心情休整,终于在第5天编写出了一个能运行的基于asio和thread_group的框架,差点没气晕过去,把源码都看懂了才感觉会用了。测试了一下,debug下一万次回应耗时800+毫秒,release下是200+毫秒,机器配置双核2.5G英特尔,4个线程并行工作,无错的感觉真好,再也不用担心iocp出一些奇怪的问题啦,因为是巨人们写的实现,呵呵。进入正题,简要说一下as...

2019-01-05 14:09:10

libevent C++封装

最近在学习libevent的过程中,碰到许多问题,如接收数据不完整,如何接收并回复来自client的数据等一些问题,还有就是关于read_cb该如何写的问题,最后总结了一下,封装成一个类,下面说一下怎样使用。源文件:libSocket.h libSocket.cpp MyEvent.h MyEvent.cpp 这4个文件是自己写的,封装的目的是为了让整个过程更清晰易懂。 以下是libS...

2018-11-22 15:34:56

C++跨平台开源库 之二

值得学习的C/C++语言开源项目(1)ACE庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html (2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。开源、免费,支持跨平台。http://think-async.com...

2018-11-21 20:23:38

值得推荐的开源C/C++框架和库

- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:Web Bench Homepage- 2. Tinyhttpdtinyh...

2018-11-21 20:21:29

Windows上安装Net-SNMP5.7

本文简要记录了在Windows上安装net-snmp5.7.1的步骤,最新的源码包可上net-snmp官方网站下载。安装net-snmp5.7.1之前需要先安装VS2010 Win32OpenSSLv1.0.1f ActivePerl5.16.3安装步骤如下: 停止Windows7系统自带的WindowsSNMPService,在 我的电脑-> 管理 -&...

2018-10-26 16:47:29

windows下使用net-snmp实现agent扩展(四)

在前三篇的内容里,介绍了使用net-snmp实现agent的Get/Set命令,下面介绍一下发送trap消息。发送trap消息时,系统默认的端口是162。使用下面的代码,可以实现trap消息的发送。//该函数发送实时报警信息。与发送一般信息端口不同void init_alarm_info(void){DEBUGMSGTL((“dcsserver”,“initializing (sett...

2018-10-09 18:29:36

windows下使用net-snmp实现agent扩展(三)

时间隔得太长了,我都快忘了什么是snmp了,知识啊知识,很容易在不用的时候忘却,也可能是自己脑袋不好使了吧?翻了翻代码,赶紧总结下,不然真不会了……在上篇博客中,实现了get/set一个字符串型变量,现在来实现对多个字符串变量的get/set。假设要实现获取CPU利用率、内存占用率和磁盘占用率的的功能,建立两个文件:alarmInfo.h和alarmInfo.c。在alarmInfo.h中...

2018-10-09 18:28:22

windows下使用net-snmp实现agent扩展(二)

刚刚实现了int型的get命令,可能更多的情况下,我们更需要的是字符串类型的。在实现int型的时候,用到了netsnmp_register_int_instance这个函数,很自然想到如果是string型的,用类似的netsnmp_register_string_instance,或者netsnmp_register_char_instance不就行了?很可惜的是:net-snmp并没有提供这两个...

2018-10-09 18:24:28

windows下使用net-snmp实现agent扩展(一)

项目上需要用snmp来做告警监控管理,达到对系统的运行状态的监测。这几天研究了一下,发现网上资料比较少,大多数抄来抄去,能够正确运行的更少。所以,总结了一下,把相关的代码放上来,希望能够帮助同样遇到困惑的朋友。 项目名称为DCS系统,采用VS2010开发,DCS作为被监测的对象,因此需要实现snmp的Agent扩展。最开始的方法,采用了WinSnmp,发现步骤很繁琐,需要编写dll,需要手动修...

2018-10-09 18:21:34

更好的内存管理-jemalloc

今年年初由于facebook而火起来的jemalloc广为人之,但殊不知,它在malloc界里面很早就出名了。Jemalloc的创始人Jason Evans也是在FreeBSD很有名的开发人员。此人就在2006年为提高低性能的malloc而写的jemalloc。Jemalloc是从2007年开始以FreeBSD标准引进来的。软件技术革新很多是FreeBSD发起的。在FreeBSD应用广泛的技术会慢...

2018-09-30 15:32:05

Go开发工具

1.4 Go开发工具本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。LiteIDELiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。图1.4 LiteIDE主界面LiteIDE主要特点:支持主流操作系统WindowsLinuxMacOS XGo编译环境管理和切换管理和切换多个Go...

2018-06-02 12:26:39

Go语言学习资料整理

整理网上找到的Golang语言学习资料基础基础教程 书籍在线版Go 指南-A Tour of GoGo语言圣经(中文版)Effective Go中文版Go Web编程 build-web-application-with-golangGo入门指南 The Way to Go《The Way to Go》中文译本,中文正式名《Go入门指南》

2017-11-28 09:43:01

Windbg查看调用堆栈(k*)

https://www.52pojie.cn/thread-664189-1-1.html      无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈。学会windbg调用堆栈命令,以及理解堆栈中的各个参数的意义就显得至关重要。上图就是一个典型的Windbg堆栈,如果不理解ChildEBP、RetAddr、Args to Child等参数意义,以

2017-11-18 10:01:56

Charles Proxy最新 Mac、Win64、Win32破解版

Charles 4.2下载Charles v4.2 并安装云盘下载: Mac OS X Windows 64 bit Windows 32 bit官网下载: 前往官网下载安装后先打开Charles一次(Windows版可以忽略此步骤)下载破解文件 charles.jar替换掉原文件夹里的charles.jarMac: /Applications/Charles.ap

2017-10-26 16:55:59

在MFC中使用OTL库连接数据库

http://hyhvi.iteye.com/blog/1549639在Win32控制台程序下,要使用OTL库,只需在程序加入OTL头文件,并写上以下两句代码即可(ODBC方式):    #define OTL_ODBC     #include "otlv4.h"但是在编写MFC程序的时候,单单用以上的做法是不行的,编译的时候会出现

2017-08-02 18:37:29

Variant 与 内存泄露

http://blog.chinaunix.net/uid-10386087-id-2959221.html今天遇到一个内存泄露的问题。是师兄检测出来的。Variant类型在使用后要Clear否则会造成内存泄露,为什么呢?Google一下找到下面一篇文章,主要介绍了Com的内存泄露,中间有对Variant的一些解释吧。1. 引用计数泄漏由于C++的一些对

2017-03-16 15:14:32

查看更多

勋章 我的勋章
    暂无奖章