<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[p656456564545的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/p656456564545</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; p656456564545]]></copyright><item><title><![CDATA[学习方式总结]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/119213921</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/119213921</guid><author>p656456564545</author><pubDate>Thu, 29 Jul 2021 16:10:16 +0800</pubDate><description><![CDATA[源码学习方法: 多去翻一翻框架的源代码, 快速浏览, 看一下实现机制;
]]></description><category></category></item><item><title><![CDATA[如何让glog性能提高10倍]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/117417766</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/117417766</guid><author>p656456564545</author><pubDate>Mon, 31 May 2021 15:35:08 +0800</pubDate><description><![CDATA[https://developer.aliyun.com/article/25895
]]></description><category></category></item><item><title><![CDATA[Socket心跳包机制]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/117296624</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/117296624</guid><author>p656456564545</author><pubDate>Wed, 26 May 2021 16:39:19 +0800</pubDate><description><![CDATA[心跳包的发送，通常有两种技术
方法1：应用层自己实现的心跳包
由应用程序自己发送心跳包来检测连接是否正常，大致的方法是：服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包，然后启动一个低级别的线程，在该线程中不断检测客户端的回应， 如果在一定时间内没有收到客户端的回应，即认为客户端已经掉线；同样，如果客户端在一定时间内没 有收到服务器的心跳包，则认为连接不可用。方法2：TCP的KeepAlive保活机制
因为要考虑到一个服务器通常会连接多个客户端，因此由用户在应用层自己实现心跳包，代码较多]]></description><category></category></item><item><title><![CDATA[mysql  索引失效case 总结]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/116305085</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/116305085</guid><author>p656456564545</author><pubDate>Fri, 30 Apr 2021 15:53:47 +0800</pubDate><description><![CDATA[日期类型可以直接和string格式的字符串比较

select * from xxx where event_time&gt;'2018-06-02' 可以使用索引, mysql默认会把后面的字符串转成date类型。可以使用between and

select * from xxx where date(event_time)&gt;'2018-06-02' 不能使用索引

如果时间戳日期和时间都要比较, 最好使用两个字段保存这个时间戳, 这样可以利用索引

select * from xxx whe..]]></description><category></category></item><item><title><![CDATA[2021-03-06]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/114461390</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/114461390</guid><author>p656456564545</author><pubDate>Sat, 06 Mar 2021 22:46:51 +0800</pubDate><description><![CDATA[项目拔高点思考总结:

libco;

分布式缓存设计;

brpc;

epoll + 异步;
]]></description><category></category></item><item><title><![CDATA[char *使用注意点]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/110195746</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/110195746</guid><author>p656456564545</author><pubDate>Thu, 26 Nov 2020 16:50:19 +0800</pubDate><description><![CDATA[函数传递形参: char *a,

如果是修改a指向的buffer内容是可以的, 但是a= (char*)malloc(sizeof(char)*5) 指向新的空间则不行, 有问题的。

https://blog.youkuaiyun.com/z702143700/article/details/46628251/
]]></description><category></category></item><item><title><![CDATA[linux内存管理——mmap函数详解]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/108199989</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/108199989</guid><author>p656456564545</author><pubDate>Mon, 24 Aug 2020 15:19:37 +0800</pubDate><description><![CDATA[mmap函数是unix/linux下的系统调用。

当存在客户－服务程序中复制文件时候，其数据流如下，要经历四次数据复制，开销很大。







如果采用共享内存的方式，那么将大大优化IO操作，数据流变成了如下，数据只复制两次：









映射文件或设备到内存中，取消映射就是munmap函数。

语法如下：

void*mmap(void*addr,size_tlength,intprot,intflags,

intfd,off_toffset);

intmu...]]></description><category></category></item><item><title><![CDATA[leetcode 题目解体思路总结(防忘记)]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/107851746</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/107851746</guid><author>p656456564545</author><pubDate>Thu, 06 Aug 2020 23:00:28 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/is-subsequence/solution/dui-hou-xu-tiao-zhan-de-yi-xie-si-kao-ru-he-kuai-s/

如果有大量输入的 S，称作 S1, S2, ... , Sk 其中 k &gt;= 10 亿，你需要依次检查它们是否为 T 的子序列。在这种情况下，你会怎样改变代码？思路:匹配到某一点时 待匹配的字符在长字符串中下一次出现的位置
...]]></description><category></category></item><item><title><![CDATA[c 指针的指针]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/107563122</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/107563122</guid><author>p656456564545</author><pubDate>Fri, 24 Jul 2020 15:57:44 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;

int main() {
   int  var;
   int  *ptr;
   int  **pptr;

   var = 3000;
   /* 获取 var 的地址 */
   ptr = &amp;var;
   /* 使用运算符 &amp; 获取 ptr 的地址 */
   //tr = &amp;ptr;
   pptr = mall.]]></description><category></category></item><item><title><![CDATA[linux top命令VIRT,RES,SHR,DATA的含义]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/107186913</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/107186913</guid><author>p656456564545</author><pubDate>Tue, 07 Jul 2020 17:56:26 +0800</pubDate><description><![CDATA[VIRT：virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小，包括进程使用的库、代码、数据等
2、假如进程申请100m的内存，但实际只使用了10m，那么它会增长100m，而不是实际的使用量

RES：resident memory usage 常驻内存
1、进程当前使用的内存大小，但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存，实际使用10m，它只增长10m，与VIRT相反
4、关于库占用内存的情况，它只统计加载的库文件所占内存大小

SHR：s]]></description><category></category></item><item><title><![CDATA[Linux ps 命令查看进程启动及运行时间]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/106821930</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/106821930</guid><author>p656456564545</author><pubDate>Thu, 18 Jun 2020 00:35:50 +0800</pubDate><description><![CDATA[引言

同事问我怎样看一个进程的启动时间和运行时间，我第一反应当然是说用 ps 命令啦。ps aux或ps -ef不就可以看时间吗？

ps aux选项及输出说明

我们来重新复习下ps aux的选项，这是类 BSD 风格的命令选项，因为不带“-”。

通过 man 可以看到 aux 选项解释如下：


a      Lift the BSD-style "only yourself" restriction, which is imposed upon the set of all processes 
]]></description><category></category></item><item><title><![CDATA[高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/105731053</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/105731053</guid><author>p656456564545</author><pubDate>Fri, 24 Apr 2020 14:55:18 +0800</pubDate><description><![CDATA[本文是我将最近两篇文章，重新整理成一篇，方便收藏。如果你已经阅读过前两篇，并且已经做了收藏，可以重新收藏本文即可。



你有收藏和整理文章的习惯吗？好好利用Evernote或者印象笔记，不要吝啬那点年费，你值得购买，并养成收藏和整理的习惯！






本文源于大家在公众号里面的留言，既然很多人都搞不清楚TIME_WAIT和CLOSE_WAIT，那么小胖哥今天还是抽个时间，统一帮大家理理...]]></description><category></category></item><item><title><![CDATA[shell 正则捕获]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/105375428</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/105375428</guid><author>p656456564545</author><pubDate>Tue, 07 Apr 2020 22:16:33 +0800</pubDate><description><![CDATA[我想从键值对语法中提取值对,但是我不能.
我试过的例子






echo employee_id=1234 | sed 's/employee_id=\([0-9]+\)/\1/g'

但是,这给employee_id = 1234而不是实际是捕获组的1234.

我在这里做错了什么？我也试过：




echo employee_id=1234| egrep -o employee_i...]]></description><category></category></item><item><title><![CDATA[为什么梯度反方向是函数值下降最快的方向？]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/104509007</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/104509007</guid><author>p656456564545</author><pubDate>Wed, 26 Feb 2020 01:07:48 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/weixin_40807247/article/details/82755087
]]></description><category></category></item><item><title><![CDATA[SVM的理解]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/104020256</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/104020256</guid><author>p656456564545</author><pubDate>Fri, 17 Jan 2020 15:35:01 +0800</pubDate><description><![CDATA[SVM简单理解：

https://blog.youkuaiyun.com/b285795298/article/details/81977271
]]></description><category></category></item><item><title><![CDATA[超平面是什么？——理解超平面（SVM开篇之超平面详解）]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/103941931</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/103941931</guid><author>p656456564545</author><pubDate>Sat, 11 Jan 2020 23:34:05 +0800</pubDate><description><![CDATA[研究了半天，终于对“超平面”有了个初步了解。

n 维空间中的超平面由下面的方程确定:



其中，w 和 x 都是 n 维列向量，x 为平面上的点，w 为平面上的法向量，决定了超平面的方向，b 是一个实数，代表超平面到原点的距离。且

...]]></description><category></category></item><item><title><![CDATA[学习动力～激励人物]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/103941193</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/103941193</guid><author>p656456564545</author><pubDate>Sat, 11 Jan 2020 22:03:21 +0800</pubDate><description><![CDATA[汪总: 狠, 牛逼, 极致;

danQing: 拼命, 勤奋, 专注效率;

jianBang: ownership, 勤奋专注;

GuoDong: 聪明且勤奋, 创业精神;

WinterLucky: 勤奋, 坚韧;



不努力进取, 何以立面？何以战敌？


...]]></description><category></category></item><item><title><![CDATA[git代码同步]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/103892296</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/103892296</guid><author>p656456564545</author><pubDate>Wed, 08 Jan 2020 15:30:50 +0800</pubDate><description><![CDATA[brew update: The following untracked working tree files would be overwritten by merge:



$cd /usr/local
$git fetch origin
$git reset --hard origin/master
]]></description><category></category></item><item><title><![CDATA[常用linux命令]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/103719655</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/103719655</guid><author>p656456564545</author><pubDate>Thu, 26 Dec 2019 17:32:24 +0800</pubDate><description><![CDATA[linux下批量删除空文件（大小等于0的文件）的方法

在 要查找的 文件夹 ，打开命令行：


find . -name "*" -type f -size 0c
]]></description><category></category></item><item><title><![CDATA[linux 命令小结]]></title><link>https://blog.youkuaiyun.com/p656456564545/article/details/103679555</link><guid>https://blog.youkuaiyun.com/p656456564545/article/details/103679555</guid><author>p656456564545</author><pubDate>Tue, 24 Dec 2019 11:00:37 +0800</pubDate><description><![CDATA[将命令的执行结果赋给变量，有2种写法，如下


	1）A=`ls -la` 反引号，运行里面的命令，并把结果返回给变量 A
	
	
	2）A=$(ls -la)
	
]]></description><category></category></item></channel></rss>