杂
Max_Cong
这个作者很懒,什么都没留下…
展开
-
如何删除脚本中的所有汉字
从GB2312-1980编码开始,汉字都是采用双字节编码。为了与系统中基本的ASCII字符集区分开,所有汉字编码的每个字节的第一位都是1。例如:“啊”字的编码为0xB0A1。GB2312的汉字编码规则为:第一个字节的值在0xB0到0xF7之间,第二个字节的值在0xA0到0xFE之间。GB12345和GB13000是对GB2312-1980的扩充,所有已经包含在GB2312中的汉字编码不变,另外增加转载 2017-03-28 10:03:46 · 1092 阅读 · 0 评论 -
C++ 异步编程探索(二) thread safe
前言在异步编程实践中,曾经遇到的最大的问题就是thread safe 问题。我所在的团队是Database团队,主要是为APP提供和redis交互的API。场景就是application thread调用我们的API。我们有个worker thread负责网络I/O。我们的API基于hiredis,hiredis声明自己不是thread-safe。这也很正常,看了看hireids的代码,关于...原创 2018-11-02 09:23:33 · 960 阅读 · 0 评论 -
mesh network
IntroductionMeshwork follows the layered OSI model in which one layer is implemented on top of another.L1: Physical LayerThe PHY layer is implemented in Cosa within Wireless::Driver implemen转载 2018-01-15 07:34:22 · 1254 阅读 · 0 评论 -
linux socket tuning
在开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本文内容包括对于 Sockets API 的使用、两个可以提高性能的 socket 选项以及 GNU/Linux 优化。为了能够开发性能卓越的应用程序,请遵循以下技巧:最小化报文传输的延时。最小化系统调用的负载。为转载 2017-11-03 12:42:14 · 508 阅读 · 0 评论 -
CURL 用法
我一向以为,curl只是一个编程用的函数库。最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。===================================curl网站开发指南阮一峰 整理curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面举例讲解如何将它用于转载 2017-10-20 09:46:22 · 599 阅读 · 0 评论 -
Redis Cluster原理和应用
全面剖析Redis Cluster原理和应用1.Redis Cluster总览1.1 设计原则和初衷在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子。最核心的目标有三个:性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式、异步复制、客户端重定向等设计,而牺牲转载 2017-09-22 12:49:42 · 1594 阅读 · 0 评论 -
URL的组成部分
URL 的组成部分URL(统一资源定位符)是 URI(通用资源标识)的特定类型。URL 通常在因特网上查找现有资源。当 Web 客户机向服务器发出对资源的请求时,使用 URL。URI 和 URL 的概念由因特网协会和 IETF(因特网工程任务组织)请求评论文档 RFC 2396 统一资源标识(URI):一般语法定义(http://www.ietf.org/rfc/rfc2396.txt)。简要地说,转载 2017-09-30 14:16:53 · 5202 阅读 · 0 评论 -
noSQL DB 技术选型
技术选型 技术选型常常是一个非常严谨的过程。由于一个项目通常是由数十位甚至上百位开发人员协同开发的,因此一个精准的技术选型常常能够大幅提高整个项目的开发效率。在尝试为某一类需求设计解决方案时,我们常常会有很多种可以选择的技术。为了能够精准地选择一个适合于这些需求的技术,我们就需要考虑一系列有关学习曲线,开发,维护等众多方面的因素。这些因素主要包括:该技术所提供的功能是否能够完整地解决转载 2017-09-21 16:26:49 · 1591 阅读 · 0 评论 -
常见线程模型
常见线程模型一个连接对应一个线程或进程线程/进程处理来自绑定连接的消息,连接不断开线程/进程就不退。当连接数逐渐增多时,线程/进程占用的资源和上下文切换成本会越来越大,性能很差,这就是C10K问题的来源。这两种方法常见于早期的web server,现在很少使用。单线程reactor以libevent,libev等event-loop库为典型,一般是由一个event dispat转载 2017-09-20 14:28:18 · 1406 阅读 · 0 评论 -
How to use boost::property_tree to load and write JSON
Boost's Property TreeProperty Tree is a sublibrary of boost that allow you handlingtree of property. It can be used to represent XML, JSON, INI files, file paths, etc. In our case, we will be inte转载 2017-07-26 13:24:38 · 863 阅读 · 0 评论 -
protocol buffer 常用API
1、C数组的序列化和反序列化API[cpp] view plain copy//C数组的序列化和序列化API bool ParseFromArray(const void* data, int size); bool SerializeToArray(void* data, int size) const; //使用 void set_peo转载 2017-06-14 15:07:18 · 666 阅读 · 0 评论 -
0MQ options
*int zmq_getsockopt (void '*socket', int 'option_name', void '*option_value', size_t '*option_len');* 该api用于设置套接字的选项 option_name:ZMQ_RCVMORE: ZMQ_TYPE: socket的类型ZMQ_SNDHWM:ZMQ_IDENTITY原创 2017-06-10 11:41:48 · 587 阅读 · 0 评论 -
使用valgrind分析C程序调用线路图
原文连接:http://blog.csdn.net/unix21/article/details/8772074Valgrind可以检测内存泄漏和内存违例,但是用Valgrind生成的日志信息结合kcachegrind就可以查看C程序的执行线路图,调用时间,是做性能优化和查看代码的非常好的工具。1.下载安装Valgrind 安装到www.valgrind.org下载转载 2017-06-07 15:49:35 · 852 阅读 · 0 评论 -
Libevent_
Libevent介绍libevent是一个事件触发的网络库,适用于windows、Linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。libevent官方转载 2017-05-05 08:35:26 · 727 阅读 · 0 评论 -
TCP粘包,拆包及解决方法
TCP粘包,拆包及解决方法原文:https://blog.insanecoder.top/tcp-packet-splice-and-split-issue/在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。我们都知道TCP属于传输层的协议,传输层除了有转载 2017-05-04 16:54:11 · 2051 阅读 · 0 评论 -
如何获取Client和Server自己的还有对方的IP/port
今天同了个问题, 说如何得到Client自己的source IP和Port。 之前都是server端去读取client的IP和Port。搞了个小程序试试,果然是可以拿到的。话不多说上code。Note:build optiong++ $filename -std=c++11 -lpthread #include #include // for memset(),原创 2017-04-13 11:10:50 · 6290 阅读 · 0 评论 -
Install gcc-5.3.0 on CentOS 7
原文http://lightjameslyy.github.io/2016/04/15/Install-gcc-5-3-0-on-CentOS-7/1.Preparationsoperating system: CentOS 7 64bitold gcc: gcc 4.8.2source packages: gcc-5.3.0.tar.gz gmp-6.1.转载 2017-04-13 09:20:08 · 1543 阅读 · 0 评论 -
boost log -- header only 的心酸历程(四)
好久没有谈论boost log这个话题了。前两天突然发之前由于粗心,忽略了一些问题。之前为了引用方便,将这个转换成header only。header only的好处就是-- 使用时不用额外的link动态库。这样应用它的时候更加方便。坏处就是 -- 增加重新编译的时间。这都不是关键。 为了实现logger 功能的全局可见。 首先想到的就是用单例模式。然而单例模式如果不是header onl...原创 2019-09-03 10:20:33 · 1295 阅读 · 0 评论