gswen
码龄10年
关注
提问 私信
  • 博客:174,137
    174,137
    总访问量
  • 62
    原创
  • 1,410,308
    排名
  • 109
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-03-22
博客简介:

Swartz2015的专栏

查看详细资料
个人成就
  • 获得115次点赞
  • 内容获得31次评论
  • 获得164次收藏
创作历程
  • 1篇
    2019年
  • 7篇
    2018年
  • 47篇
    2017年
  • 12篇
    2016年
成就勋章
TA的专栏
  • leveldb源码剖析
    13篇
  • 算法
    7篇
  • 操作系统
    4篇
  • 图像
  • 图像搜索
    1篇
  • 服务器端编程
    21篇
  • muduo源码分析
    11篇
  • 读书笔记
    1篇
  • gcc
    2篇
  • c
    12篇
  • 进程同步
    1篇
  • 协程
    1篇
  • Nginx
    13篇
  • 机器学习
    1篇
  • make
    1篇
  • tars
    5篇
  • lua
    1篇
  • go
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【go学习笔记】database/sql实现分析

文章目录前言代码框架Driver接口连接池管理策略相关用户接口实现rowsStmtmysql驱动实现细节总结前言后端程序主要是数据驱动型的,因此大多数后端应用也就主要涉及几类和数据相关的操作:读数据,写数据,处理数据。其中,读写是处理的基础。读写操作必然涉及编程语言和各种各样数据库的交互,因此任何后端编程语言都必须提供良好的数据库交互接口方便程序读写数据。本文主要是介绍golang的数据库操作...
原创
发布博客 2019.02.14 ·
1512 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

lua虚拟机--lua函数调用

前言数据栈函数调用字节码CALL指令虚拟机实现调用栈总结前言本文介绍lua虚拟机中是如何实现lua函数调用的,不涉及C函数的调用。除了通过介绍栈帧结构来了解函数调用的过程,还将对lua支持不定长参数函数的实现进行深入分析。下面我们具体分析lua在调用CALL指令前后栈的变化。数据栈函数调用字节码对以下的lua函数调用代码:...
原创
发布博客 2018.06.27 ·
1906 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Tars源码分析---智能指针的实现

前言TC_AutoPtrTC_HandleBaseT构造函数赋值重载析构函数小结TC_ScopedPtrTC_SharedPtrtc_shared_count_basetc_shared_count_impl_ptc_shared_count_impl_pdTC_EnableSharedFromThis构造函数赋值重载总结前言...
原创
发布博客 2018.06.25 ·
1096 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Tars源码分析---线程池实现

前言TC_ThreadThreadWorkerTC_ThreadPoolTC_ThreadQueue总结前言Tars底层实现了一个线程池库,主要源代码位于tc_thread_poo.(cpp,h)文件中。线程池队列涉及的核心是工作线程和任务队列的设计。本文基于tars中的实现进行介绍。TC_Thread线程池的工作线程类(ThreadWo...
原创
发布博客 2018.06.24 ·
1703 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Tars源码分析---内存哈希表的实现

前言基本原理前言在cpp/util中实现了基于内存的哈希表(hashmap.(cpp,h))。该哈希表支持dump到文件,以及从文件load到内存。在实现上,它基于传统的开链哈希,分别为每个哈希桶维护一个block链表,相同哈希值的kv对散列存储到相同的block链表中。链表中每个block存储具体的一个kv数据。由于hashmap使用TC_Mem...
原创
发布博客 2018.06.23 ·
1452 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Tars源码分析----Application

前言前言
原创
发布博客 2018.06.17 ·
3378 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

Tars源码分析---TC_EpollServer

前言架构IO_Thread PoolHandler PoolAdapter总结前言这个系列的文章主要分析腾讯的开源RPC框架Tars。Tars除了提供RPC服务之外,还配套了一整套的运营管理平台。它同时支持C++,java等多种编程语言。本系列主要是分析tars的cpp部分实现,涉及的版本是github上最近release的1.40版。主要是在源...
原创
发布博客 2018.06.15 ·
1824 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

makefile规则之order-only依赖 ----- |

最近在看caffe的代码,首先不得不说caffe的代码写的这是结构清晰,代码简洁。后续我也会写关于caffe源码解析的博文。今天主要是看一下makefile规则里面的一个order-only依赖规则。我们都知道makefile构建工程的基本语句是:targets : prerequisites command这句构造语句可以简单理解为,根据prerequisites中的文件...
原创
发布博客 2018.04.05 ·
2404 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

Nginx源码剖析--连接池

前言NGINX是一个http服务器。http基于tcp协议,tcp是基于连接的协议。也就是每个http请求都要在某个TCP连接上。在NGINX中,用一个结构体表示连接:struct ngx_connection_s每个连接都用一个ngx_connection_s结构体表示。每次监听socket accept到一个新的连接都会”新建”一个新的ngx_connection_s对应到这个
原创
发布博客 2017.12.15 ·
902 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx源码剖析--ngx_http_optimize_servers函数分析

前言本章将继续介绍HTTP模块初始化函数:ngx_http_block中的内容。将会涉及到server块的组织,监听端口的管理,以及ip地址和server块之间的组织关系。下面我们将从listen关键字说起,然后根据listen配置项以及它的解析函数了解nginx组织server块和监听端口的过程。最后在介绍ngx_http_optimize_servers函数。所有这些工作都是为了实现Nginx的
原创
发布博客 2017.12.03 ·
1015 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

Nginx源码剖析--HTTP请求各阶段的具体作用

前言Nginx将HTTP请求分为11各阶段进行处理。每个阶段包含零到多个handler处理函数。分阶段处理的目的是增加灵活性,方便模块介入。HTTP请求处理主要分为一下11个阶段:typedef enum { NGX_HTTP_POST_READ_PHASE = 0, NGX_HTTP_SERVER_REWRITE_PHASE, //对server对应的uri的转换 NGX_HT
原创
发布博客 2017.11.26 ·
727 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx源码剖析--HTTP请求的分阶段处理的初始化

前言Nginx作为一个http服务器,核心任务就是处理HTTP请求。在接收到请求时,Nginx框架首先解析http请求,将解析结果放在ngx_http_request中,由于http是在tcp上工作的,因此解析可能会持续一段时间。nginx用状态机完成对HTTP请求的异步解析。整个解析过程都是由Nginx框架代码完成,不需要用户介入。当解析得到完整的http请求后,就开始处理http请求。ng
原创
发布博客 2017.11.16 ·
603 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx源码剖析--HTTP模块初始化概述

前言前面讲了HTTP模块配置结构体的组织以及各个server,location块为了能够实现快速查找而使用的组织数据结构。这些内容都属于HTTP模块的初始化部分。除了之前讲的内容之外,HTTP初始化还包括其他内容。我们将在这部分讲述这些内容。对HTTP模块的初始化是从‘ http’关键字开始的。也就是说,当配置文件解析器在配置文件中读到http关键字,则会开始根据http块中的配置信息初始化http
原创
发布博客 2017.11.10 ·
871 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx源码剖析--server和location的组织

前言我们知道,Nginx的配置文件的http块中一般会存在多个server块,每个server块中也会有多个locations块,而每个location块中也允许有多个location块。前面我们在分析http模块的配置结构体的时候也看到,这些块是通过上一级的ngx_http_core_module模块创建的配置结构体管理的。比如http块中的所有server块都是由ngx_http_core_mo
原创
发布博客 2017.11.04 ·
1597 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Nginx源码剖析--HTTP模块配置信息的merge

前言考虑有如下形式的配置文件:http{ .... server { ..... location { ..... } }}根据前面的讲解,Nginx会为每个http块,server块和location块创建一个ngx_http_conf_ctx_t结构体。这个结构体主要是为了管理各个模块的main_conf,srv
原创
发布博客 2017.10.27 ·
665 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

training set, validation set, test set的区别

首先安利一下一个机器学习的入门在线课程:台湾大学机器学习以及关于上面这个问题的一个解答:解答大四做毕设的时候就有这个问题,当时没想明白,后面一直疑惑不解,直到今天才搞懂。首先写一下结论:training set: 用来训练模型validation set : 用来做model selectiontest set : 用来评估所选出来的model的实际性能我对这三个名词的疑惑主要是由于一下几个
原创
发布博客 2017.10.22 ·
22605 阅读 ·
16 点赞 ·
3 评论 ·
35 收藏

Nginx源码剖析--HTTP模块配置结构体在conf_ctx中的组织

前言http模块配置结构体组织架构问题解决方案总结前言上一篇文章介绍了event模块的配置结构体的初始化以及模块中的一些初始化函数,比如init_process函数。这些工作都是在服务器启动之前必须完成的。 在介绍event模块的配置结构体初始化时,我们知道event模块的解析是从events{}“events”关键字开始的。也就是说与event模块相关的所有配置项都必须在配置文件的ev
原创
发布博客 2017.10.21 ·
1238 阅读 ·
0 点赞 ·
2 评论 ·
1 收藏

Nginx源码剖析--event类型模块

目录目录前言核心模块几种event模块ngx_event_core_moduleepoll和kqueue等功能性的event模块嵌入到Nginx框架中总结前言前面梗概介绍了Nginx模块配置的信息。简单地说,nginx的灵活性主要归功于他的高度模块化和可配置性。其中可配置性依赖于配置文件。在nginx中,模块就是一个struct类型的全局变量。Nginx通过为每个模块维护一个配置结构体
原创
发布博客 2017.10.13 ·
706 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx源码剖析--模块配置信息初始化

目录目录前言关于conf_ctxNginx中的模块Nginx模块的形式ngx_module_s配置文件解析框架前言前面在介绍ngx_cycle_t结构体的初始化时,我们深入到了ngx_cycle_init函数中。在那里我们说过,对ngx_cycle_t->conf_ctx的初始化是占篇幅最大的一部分。而之前我们在介绍ngx_cycle_t结构体中
原创
发布博客 2017.10.01 ·
617 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

gcc -c

昨天玩opengl,找了一个代码跑了一下,首先编译,然后运行。编译顺利通过,但是运行的时候一直说二进制文件不能执行,很是郁闷。后来才发现是它gcc选项的问题。它用了 gcc -c,而这个选项生成的是没有链接时的目标文件,因此自然是不能执行的。毕竟需要把相关的库啊之类的链接进去才能组成一个完整的可执行程序。
原创
发布博客 2017.09.30 ·
649 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多