<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chen199199的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chen199199</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chen199199]]></copyright><item><title><![CDATA[Linux下查看一个进程中所有线程及其运行的简略信息]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/117080088</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/117080088</guid><author>chen199199</author><pubDate>Thu, 20 May 2021 16:00:30 +0800</pubDate><description><![CDATA[ps -mp pid -o THREAD,tid,time


[root]# ps -mp 1 -o THREAD,tid,time
USER   %CPU PRI SCNT WCHAN USER SYSTEM  TID   TIME
root   22.5  -  - -     -   -   - 1-02:47:59
root   0.0 19  - hrtime  -   -   1 00:00:05
root   0.4 ...]]></description><category></category></item><item><title><![CDATA[make接收宏定义参数]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/114657536</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/114657536</guid><author>chen199199</author><pubDate>Thu, 11 Mar 2021 11:30:33 +0800</pubDate><description><![CDATA[makefile接收make参数并传递到代码里面

ifneq($(strip$(DEF_SVR_OFFSET_INDEX)),)
DEFINES+=-DDEF_SVR_OFFSET_INDEX=$(DEF_SVR_OFFSET_INDEX)
endif


]]></description><category></category></item><item><title><![CDATA[C++ map hash ， [] 和 find的区别]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/114032029</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/114032029</guid><author>chen199199</author><pubDate>Wed, 24 Feb 2021 18:02:41 +0800</pubDate><description><![CDATA[map 和 hashmap 在使用上需要注意 [] 和 find的区别，数据不存在时 [] 会开辟内存 而find 不会。这个特性很重要。

这个特性很重要，假如一个map当前size是1，使用[]访问一个不存在的key时，你再去取size，发现 size变成2 了，就是这么叼。***

再假如，高并发多线程程序访问map 或 hash 的时候，为了提高性能使用读写锁，如果你再读锁里面使用[] 访问一个不存在的数据时，那就有可能崩溃了。******
...]]></description><category></category></item><item><title><![CDATA[new对象数组的时候怎么设置构造函数参数]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/113049090</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/113049090</guid><author>chen199199</author><pubDate>Sat, 23 Jan 2021 15:02:08 +0800</pubDate><description><![CDATA[问题：
c++中有带参数构造函数的类，new对象数组的时候怎么设置构造参数？

比如
classUser
{
intm_age;
public:
User(inta_age):m_age(a_age){}
};
User*l_us =new User[6];//怎么把参数放进去呢


解决方法：
intl_age=10000;
// 分配内存
User*l_us=(User*)operatornew(6*sizeof(User));
for(inti=...]]></description><category></category></item><item><title><![CDATA[文件多行替换]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/112198559</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/112198559</guid><author>chen199199</author><pubDate>Mon, 04 Jan 2021 20:05:22 +0800</pubDate><description><![CDATA[单行替换的时候我基本上使用sed命令，sed命令多行替换的操作不大熟悉，还好找到了perl。


替换前
cat aaaaa.ini
DBIP=192.168.100.100
port=9905

替换后
cat aaaaa.ini
DBIP=192.168.100.110
port=9023

执行命令
sudo perl -0777 -i -pe "s/DBIP=192.168.100.100\ndbport=9905/DBIP=192.168.100.110\ndbport=9023/ig" aaaa]]></description><category></category></item><item><title><![CDATA[服务端数据落地方案]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/108445592</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/108445592</guid><author>chen199199</author><pubDate>Mon, 07 Sep 2020 12:15:12 +0800</pubDate><description><![CDATA[数据落地方案
Redis 是一个高性能的key-value数据库，服务端程序广泛的使用它缓存业务数据，甚至于达到滥用的程度。我们最担心的一个问题就是万一redis崩溃了怎么办，里面的数据如果恢复，应该采用什么方式去落地保存。
下面就根据不同的业务场景来提出几种不同的落地方案。

1、写压力小、读压力大的数据。
方案：同步写mysql，然后同步写redis。

2、写压力大的数据。
方案：同步写redis，然后异步写mysql；数值类的数据要采用增量的方式写，防止redis崩溃时覆盖回写脏数据。

3、写压力]]></description><category></category></item><item><title><![CDATA[boost bind 和 boost function学习]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/106950584</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/106950584</guid><author>chen199199</author><pubDate>Wed, 24 Jun 2020 20:29:12 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;

#include&lt;boost/function.hpp&gt;

#include&lt;boost/bind.hpp&gt;

usingnamespacestd;




boolsome_function(inta,intb)

{

cout&lt;&lt;"a="&lt;&lt;a&lt;&lt;"b="&lt;&lt;b&lt;&lt;endl;

returna&lt;b...]]></description><category></category></item><item><title><![CDATA[C++从圆弧中随机一个点]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/103414796</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/103414796</guid><author>chen199199</author><pubDate>Fri, 06 Dec 2019 00:52:19 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;

#include&lt;cmath&gt;

#include&lt;vector&gt;

#include&lt;random&gt;

#include&lt;stdio.h&gt;



usingnamespacestd;

constinteps=1e-2;//精度

#definePI3.1415926
...]]></description><category></category></item><item><title><![CDATA[C++ mysql 连接 设置编码]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/102558058</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/102558058</guid><author>chen199199</author><pubDate>Mon, 14 Oct 2019 22:19:12 +0800</pubDate><description><![CDATA[创建mysql连接之后为连接设置一下 utf8 编码
]]></description><category></category></item><item><title><![CDATA[C++ map转换到vector]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/98531944</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/98531944</guid><author>chen199199</author><pubDate>Mon, 05 Aug 2019 22:54:24 +0800</pubDate><description><![CDATA[/*************************************************************************
  &gt; File Name: map2vec.cpp
  &gt; Author: chenhui
  &gt; Mail: *********
  &gt; Created Time: 2019年08月 5日 22:45:15...]]></description><category></category></item><item><title><![CDATA[架构 之 染色日志]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/97029368</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/97029368</guid><author>chen199199</author><pubDate>Tue, 23 Jul 2019 20:14:25 +0800</pubDate><description><![CDATA[作者：匿名用户
链接：https://www.zhihu.com/question/20292868/answer/21643316
来源：知乎
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。

底层的rpc框架实现的，其实就是给每一次请求的源头处，加上一个seqence id（id内容可以是qq号+时间戳+随机数），每次记日志的时候，都打把seqence id打出来，rpc...]]></description><category></category></item><item><title><![CDATA[C++ stl list 踩坑]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/96649939</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/96649939</guid><author>chen199199</author><pubDate>Sat, 20 Jul 2019 23:58:20 +0800</pubDate><description><![CDATA[C++ stl list 获取size()函数非常慢，跟shi一样，生产环境中使用被坑了，有时间看一下源码，严重怀疑是现算的。



#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;sys/types.h&gt;
#inc...]]></description><category></category></item><item><title><![CDATA[redis lua脚本实现原子操作]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/93367628</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/93367628</guid><author>chen199199</author><pubDate>Sat, 22 Jun 2019 21:37:12 +0800</pubDate><description><![CDATA[通过lua脚本封装原子操作，对一个key设置比旧数据大的数值，并返回大的数值；如果redis里面不存在该key，直接设置。
	
	eval "local a=redis.call('GET',KEYS[1]) if a==false then redis.call('SET',KEYS[1],ARGV[1]) return ARGV[1] elseif tonumber(ARGV[1])&gt;t...]]></description><category></category></item><item><title><![CDATA[开源实时流媒体播放服务器程序]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/89677682</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/89677682</guid><author>chen199199</author><pubDate>Mon, 29 Apr 2019 16:29:14 +0800</pubDate><description><![CDATA[DarwinStreamingServer（即DSS）是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写，在设计上遵循高性能，简单，模块化等程序设计原则，务求做到程序高效，可扩充性好。并且DSS是一个开源的基于标准的流媒体服务器，可以运行在WindowsNT和Windows2000，以及几个UNIX实现上，包括MacOSX，Linux，FreeBSD和Sol...]]></description><category></category></item><item><title><![CDATA[GDB attach 调试运行中的程序]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/88431147</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/88431147</guid><author>chen199199</author><pubDate>Tue, 12 Mar 2019 22:49:41 +0800</pubDate><description><![CDATA[程序运行时，某个线程在某个逻辑分支卡住了一直出不来，逻辑比较复杂，判断不出来是哪个位置。因此用gdb attach 跟踪现在线程卡在哪个位置。

gdb attach [pid]     调试某个进程

info threads        查看该进程内所有的线程 状态

thread [tid]      进入某个线程

bt       ...]]></description><category></category></item><item><title><![CDATA[基于Grafana + Influxdb 的程序内性能监控]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/88260495</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/88260495</guid><author>chen199199</author><pubDate>Wed, 06 Mar 2019 22:23:33 +0800</pubDate><description><![CDATA[基于Grafana + Influxdb 的程序内性能监控

https://www.cnblogs.com/davidwang456/p/7795263.html

https://blog.youkuaiyun.com/baomw/article/details/89146300
]]></description><category></category></item><item><title><![CDATA[任务优先级]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/88233739</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/88233739</guid><author>chen199199</author><pubDate>Wed, 06 Mar 2019 14:12:27 +0800</pubDate><description><![CDATA[事情的优先级从紧急程度和重要程度两个方面去考虑。
]]></description><category></category></item><item><title><![CDATA[mysql数据存在时update，不存在时insert]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/87724959</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/87724959</guid><author>chen199199</author><pubDate>Tue, 19 Feb 2019 18:33:41 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/liaojie970/p/6824773.html]]></description><category></category></item><item><title><![CDATA[MSEC]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/85205413</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/85205413</guid><author>chen199199</author><pubDate>Sat, 22 Dec 2018 14:07:49 +0800</pubDate><description><![CDATA[https://github.com/Tencent/MSEC]]></description><category></category></item><item><title><![CDATA[被MYSQL MVCC(多版本并发控制) 坑的经历]]></title><link>https://blog.youkuaiyun.com/chen199199/article/details/84991566</link><guid>https://blog.youkuaiyun.com/chen199199/article/details/84991566</guid><author>chen199199</author><pubDate>Thu, 13 Dec 2018 17:03:17 +0800</pubDate><description><![CDATA[高并发insert记录时，主键ID大的可能会比主键ID小的记录先提交成功。（以后再补充）]]></description><category></category></item></channel></rss>