杂
Max_Cong
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何删除脚本中的所有汉字
从GB2312-1980编码开始,汉字都是采用双字节编码。为了与系统中基本的ASCII字符集区分开,所有汉字编码的每个字节的第一位都是1。例如:“啊”字的编码为0xB0A1。GB2312的汉字编码规则为:第一个字节的值在0xB0到0xF7之间,第二个字节的值在0xA0到0xFE之间。GB12345和GB13000是对GB2312-1980的扩充,所有已经包含在GB2312中的汉字编码不变,另外增加转载 2017-03-28 10:03:46 · 1216 阅读 · 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 · 1179 阅读 · 0 评论 -
mesh network
Introduction Meshwork follows the layered OSI model in which one layer is implemented on top of another. L1: Physical Layer The PHY layer is implemented in Cosa within Wireless::Driver implemen转载 2018-01-15 07:34:22 · 1453 阅读 · 0 评论 -
linux socket tuning
在开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本文内容包括对于 Sockets API 的使用、两个可以提高性能的 socket 选项以及 GNU/Linux 优化。 为了能够开发性能卓越的应用程序,请遵循以下技巧: 最小化报文传输的延时。最小化系统调用的负载。为转载 2017-11-03 12:42:14 · 637 阅读 · 0 评论 -
CURL 用法
我一向以为,curl只是一个编程用的函数库。 最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。 =================================== curl网站开发指南 阮一峰 整理 curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。 它支持多种协议,下面举例讲解如何将它用于转载 2017-10-20 09:46:22 · 758 阅读 · 0 评论 -
Redis Cluster原理和应用
全面剖析Redis Cluster原理和应用 1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子。最核心的目标有三个: 性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式、异步复制、客户端重定向等设计,而牺牲转载 2017-09-22 12:49:42 · 1807 阅读 · 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 · 5503 阅读 · 0 评论 -
noSQL DB 技术选型
技术选型 技术选型常常是一个非常严谨的过程。由于一个项目通常是由数十位甚至上百位开发人员协同开发的,因此一个精准的技术选型常常能够大幅提高整个项目的开发效率。在尝试为某一类需求设计解决方案时,我们常常会有很多种可以选择的技术。为了能够精准地选择一个适合于这些需求的技术,我们就需要考虑一系列有关学习曲线,开发,维护等众多方面的因素。这些因素主要包括: 该技术所提供的功能是否能够完整地解决转载 2017-09-21 16:26:49 · 1740 阅读 · 0 评论 -
常见线程模型
常见线程模型 一个连接对应一个线程或进程 线程/进程处理来自绑定连接的消息,连接不断开线程/进程就不退。当连接数逐渐增多时,线程/进程占用的资源和上下文切换成本会越来越大,性能很差,这就是C10K问题的来源。这两种方法常见于早期的web server,现在很少使用。 单线程reactor 以libevent, libev等event-loop库为典型,一般是由一个event dispat转载 2017-09-20 14:28:18 · 1542 阅读 · 0 评论 -
How to use boost::property_tree to load and write JSON
Boost's Property Tree Property Tree is a sublibrary of boost that allow you handling tree 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 · 1003 阅读 · 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 · 730 阅读 · 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 · 707 阅读 · 0 评论 -
使用valgrind分析C程序调用线路图
原文连接:http://blog.csdn.net/unix21/article/details/8772074 Valgrind可以检测内存泄漏和内存违例,但是用Valgrind生成的日志信息结合kcachegrind就可以查看C程序的执行线路图,调用时间,是做性能优化和查看代码的非常好的工具。 1.下载安装 Valgrind 安装 到www.valgrind.org下载转载 2017-06-07 15:49:35 · 968 阅读 · 0 评论 -
Libevent_
Libevent介绍 libevent是一个事件触发的网络库,适用于windows、Linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。 libevent官方转载 2017-05-05 08:35:26 · 809 阅读 · 0 评论 -
TCP粘包,拆包及解决方法
TCP粘包,拆包及解决方法 原文:https://blog.insanecoder.top/tcp-packet-splice-and-split-issue/ 在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。 我们都知道TCP属于传输层的协议,传输层除了有转载 2017-05-04 16:54:11 · 2245 阅读 · 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 · 6550 阅读 · 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.Preparations operating 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 · 1664 阅读 · 0 评论 -
boost log -- header only 的心酸历程(四)
好久没有谈论boost log这个话题了。前两天突然发之前由于粗心,忽略了一些问题。 之前为了引用方便,将这个转换成header only。header only的好处就是-- 使用时不用额外的link动态库。这样应用它的时候更加方便。坏处就是 -- 增加重新编译的时间。 这都不是关键。 为了实现logger 功能的全局可见。 首先想到的就是用单例模式。然而单例模式如果不是header onl...原创 2019-09-03 10:20:33 · 1509 阅读 · 0 评论
分享