- 博客(43)
- 资源 (7)
- 收藏
- 关注
转载 gcc详解
一、GCC GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。[1]
2017-07-28 11:14:53
1346
原创 python(2):使用python分析大日志文件思路及过程
1.做服务器开发的经常会遇到要分析大量的日志,统计大量数据;这里介绍几种统计日志数据的方法和思路之前有遇到过要统计几天内的url出现次数的事情,一天有24个gz压缩文件,每个文件大概6G左右,URL的不重复率也很高使用方法:1.用shell 解压然后在统计,shell脚本写起来麻烦,统计那一块很多人也不是很熟悉(不也不咋熟悉),sort又很慢,用下面的方法进行md5转换就更慢了 w
2017-05-10 10:32:25
17934
1
转载 数据库(3):MySQL优化GROUP BY-松散索引扫描与紧凑索引扫描
满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有)。在某些情况中,MySQL能够做得更好,即通过索引访问而不用创建临时表。 为GROUP BY使用索引的最重要的前提条件是所有GROUP BY列引用同一索引的属性,并且索引按顺序保存其关键字。是否用索引访问来代替临时表的使用还取决于
2016-10-31 22:30:50
754
转载 分布式(2):CentOS+nginx+uwsgi+Python 多站点环境搭建
感谢xiongpq 的分享 http://www.cnblogs.com/xiongpq/p/3381069.htmlCentOS+nginx+uwsgi+Python 多站点环境搭建环境:CentOS X64 6.4nginx 1.5.6Python 2.7.5正文:一:安装需要的类库及Python2.7.5安装必要的开发包yum gr
2016-10-18 15:17:24
619
原创 分布式(1):nginx+spawn-fcgi+fchi + c++ 环境搭建
安装环境: Ubuntu Kylin 16.4 64位中文版 内核4.4.0内存: 2G1.安装: nignxsudo apt-get install nignx自动安装版本: nginx version: nginx/1.10.0 (Ubuntu)安装之后ps -aux |grep nginx 看到一个master两个worker nginx软件安装后相关文件位置
2016-10-18 15:10:37
1503
原创 linux(基础):ubuntu 下用户丢失sudo权限找回
1. 使用virtual vox加载外部共享文件之后,需要挂载vboxsf, 使用virtualbox的"设备"->“安装增强功能”之后运行目录下的VBoxLinuxAdditions.run之后只是挂载到medal下,使用sudo mount -t vboxsf workspace /mnt/share 提示需要加分组权限,使用usermod -G vboxusers xxxx
2016-10-18 11:54:37
1755
原创 python(1):相关库的安装
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中sudo apt-get install Python-tk sudo apt-get install pytho
2016-10-17 23:39:09
372
原创 数据库(2):sql语句例子
参考文案: http://www.w3school.com.cn/sql/sql_create_index.asp--------------------------------------------------------------------------------------------------------------1. 数据库登陆-------------------
2016-09-14 16:37:26
2434
原创 c++转码基础(4):jsoncpp相关问题
最近在使用的jsoncpp的时候遇到一些问题:1. json默认的转码内容是utf-8,转出的格式也是utf-8形式,不是unicode编码形式2.json在序列化的时候遇到0x01~0x1F的控制字符(不可见字符)的时候会生成类似\uxxxx的unicode编码形式的字符,这个字符在有些地方会遇到一些问题(如手机web方向,手机的一些库会先解析\u,所以到web层面再解析的时候jsJSO
2016-09-08 21:29:58
1493
原创 c++转码基础(3):vs中fstream不支持打开中文的问题
VS2005的fstream对于中文路径支持不好的bug。我想大概是因为VS2005更加重视了对字符串的全球化支持,所以鼓励我们使用unicode编码的字符串,对于MBCS之类的支持可能就疏忽了吧。 我搜索了一下这个问题的解决,参考了如下资料写了演示代码。fstream 和 中文路径 c++博客About unicode settings in visual studio
2016-09-08 21:07:06
482
原创 c++转码基础(2):gbk编码文件转换成无bom的utf-8文件实例
#include #include #include #include using namespace std;extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h" } // 获取ANSI的编码数据数量unsigned int countGBK(const char *
2016-09-08 20:52:42
1762
原创 c++转码基础(1):各种编码类型及unicode和uft-8互转
什么是Ascii编码?单字节编码,适用于所有拉丁文字字母.ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符.标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:0~31及127(共33个)是控制字符或通信专用字符(其余为
2016-09-08 20:50:36
6219
原创 网络(4):socket中用户自定义缓冲区的原因及方式
我们在使用TCP/IP编程的时候除了socket有收发数据缓冲区之外,通常我们还要自己定一个数据的收发缓冲区:1,为什么系统已经有收发缓冲区了,我们还要自定义收发缓冲区呢? a.假设应用程序需要发送40kB数据,但是操作系统的TCP发送缓冲区只有25kB剩余空间,那么剩下的15kB数据怎么办?如果等待OS缓冲区可用,会阻塞当前线程,因为不知道对方什么时候收到并读取数据。因此网络库应
2016-09-03 00:54:04
3561
1
原创 网络(3):epoll详解及注意事项
Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,以及select模型和poll模型 2. 常用模型的缺点2.1 PPC/TPC模型 这
2016-09-02 23:33:22
1504
1
原创 网络(2):网络配置&socket编程相关的函数选项及异常处理
一.网络编程配置:修改UDP接收发送缓冲区大小:1、修订单个socket的缓冲区大小:通过setsockopt使用SO_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem_max进行对比校验,但是如果设置的大小超过rmem_max的话,则超过rmem_max的部分不会生效;发包缓冲区与收包缓冲区一样,只不过参数名称不一样:SO_SNDBUF、wmem_max。2、修订l
2016-09-02 20:22:33
3502
原创 网络(1): IP,TCP,UDP相关概念综述及关系整理
1.网络层次分为5层(7层):物理层, 数据链路层, 网络层, 传输层, 应用层 (表示层, 会话层, 应用层) 各层主要协议包括: ARP 地址解析协议 用于ip查找,转换IP层和网络接口层使用的地址 RARP 逆地址解析协议 和rarp功能一样,只是用于无磁盘引导 IP 网际协议 ICMP internet互联网控制报文协议 Ping和Traceroute用
2016-08-26 20:59:03
1172
原创 线程同步(8):linux和Windows各种锁实现案例
该文件中包含windows和linux中各种锁的实现方式(分开编译),部分是经过验证的,注释详细;需要源码可以@我/*====================================* file: ws_thread_mutex.h 文件* anchor: wensheng* date: 2016-04-04* info: 线程锁对象* log: 1. 2016-0
2016-08-05 16:02:09
1784
原创 C++协程(2):使用ucontext实现Linux下的协程池
/*====================================* file: ws_thread_proto.h 文件* anchor: wensheng* date: 2016-05-16* info: 协程* log: 1. 2016-05-16 wensheng create======================================*/
2016-05-18 17:52:35
3147
转载 C++协程(1):协程原理及实现方式概述
1.干货写在前面协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。首先我们可以看看有哪些语言已经具备协程语义:· 比较重量级的有C#、erlang、golang*· 轻量级有python、lua、javascript、ruby· 还有函数式的scala、scheme等。c/c++不直接支持协程语义,但有不少开源的协程库,如:Protothreads:一个
2016-05-18 17:48:55
10590
原创 线程同步(7):linux和Windows线程池的实现-案例
用了几天时间写了一个通用线程池,适用于linux和Windows,测试可用:网上有类似,大概异曲同工吧~下面源码部分为池部分,还有线程部分,锁部分,log部分需要的可以@我贴代码:/*====================================* file: ws_thread_pool.h 文件* anchor: wensheng* date: 2
2016-05-15 22:56:52
1493
转载 线程同步(6):linux 多线程pthread中的各种函数
一 概述 Pthread是一套通用的线程库, 它广泛的被各种Unix所支持, 是由POSIX提出的. 因此, 它具有很好的可移植性. 例1: #include pthread.h> void *pp(void *arg) { while (1) { printf("%
2016-05-15 22:47:34
835
转载 线程同步(5):windows下各种锁
windows下的线程同步方式有以下几种: 用户方式下的:原子锁,关键代码段 内核方式下的: 事件内核对象,可等待计时器,互斥量,信号量以上在MSDN中都可以找到相应的函数和使用方法及针对的事务;当然还有一些比如原子操作,自旋锁,互斥锁等等,其中有些需要
2016-05-13 17:41:32
4192
转载 线程同步(4):linux各种锁详解
在linux内核中,有很多同步机制。比较经典的有原子操作、spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而seqlock和rcu应该可以不算在经典之列,它们是两种比较有意思的同步机制。atomic(原子操作):所谓原子操作,就是该操
2016-04-26 15:24:13
3897
转载 线程同步(3):内存模型及内存屏障详解
为了提升性能,CPU会乱序执行指令。内存屏障可以确保指令按照正确的顺序执行。RedHat的David Howells和IBM的Paul E. McKenney介绍了Linux内核的内存屏障设计。这里和大家分享一下。抽象的内存访问模型考虑下面这个系统的抽象模型: : : :
2016-04-26 15:22:50
1565
转载 线程同步(2):原子操作原理
1.原子操作的原理是通过锁内存总线的方式实现原子操作的 原子操作假定运行在两个CPU上的两个内核控制路径试图执行非原子操作同时“读-修改-写”同一存储器单元。首先,两个CPU都试图读同一单元,但是存储器仲裁器插手,只允许其中的一个访问而让另一个延迟。然而,当第一个读操作已经完成后,延迟的CPU从那个存储器单元正好读到同一个(旧)值。然后,两个CPU都试图向那个存储器单元写一新值,总线存
2016-04-26 15:21:53
2887
原创 线程同步(1):原子操作,内存屏障,锁综述
原子操作,内存屏障,锁 1.原理:CPU提供了原子操作、关中断、锁内存总线,内存屏障等机制;OS基于这几个CPU硬件机制,就能够实现锁;再基于锁,就能够实现各种各样的同步机制(信号量、消息、Barrier等等等等)。 2.所有的同步操作最基础的理论就是原子操作。内存屏障,锁都是为了保证在不同的平台或者是CPU类型下的原子操作。 3.原子操作在单核,单线程/无中断,且编译器不
2016-04-26 15:20:44
8396
2
原创 shell(1):shell基础及函数,字符串,if,while,时间处理等应用
提供给新手的shell帮助:文档注意事项:1.赋值的时候等号两边不能有空格2.写[[]]和(()) 一定要注意前后中间都有空格Shell中各种用法---------------------------------------------------shell中算数运算------------------------------------
2016-03-09 16:25:38
980
原创 shell(2):shell中关于if,while,输入参数,函数,c++进程等相关知识应用汇集事例
#!/bin/bash#开始时间"2016-03-17 20:00:00"################################################################# 帮助if [ $# != 2 ] ; then echo "脚本事例:./createdata.sh 活动起始时间 活动每一轮的时间长(s)"echo "脚本事例:./c
2016-03-08 17:50:15
461
原创 工具(1):使用lua生成vs2015的工程文件/将已有的C++文件生成vs2015工程文件
因为vs2013/vs2015没有自动加载已有项目文件的功能,有时候由于项目庞大需要手动加载好久;或者只能使用eclipse,source insight等一些工具,其实用惯了vs感觉还是挺好的;然后就写了一个脚本用于vs2015自动加载目录下载的C++文件到工程:ps:代码赶着写的比较娄,将就一下吧~ps:使用的时候需要安装一下lua工具 可以在Luaforge上找到编译好的
2016-03-04 20:41:14
1917
原创 网络库(1):libevent相关
关于libevent 网上找到几篇比较好的文章: 1.libevent剖析: http://blog.csdn.net/sparkliang/article/details/4957667 2.libevent函数查询手册:http://www.cppblog.com/mysileng/archive/2013/02/05/197739.html
2016-02-24 10:20:58
755
原创 分布式(1):大型服务器软件架构演化
大型网站系统架构的演化2014-10-19 程序猿前言一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出
2016-02-17 17:29:09
1130
原创 Linux(1):目录结构(linux文件系统)
01_Linux目录结构初学Linux,首先需要弄清Linux 标准目录结构/●root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。●home --- 存储普通用户的个人文件ftp --- 用户所有服务httpdsambauser1user2
2016-02-17 12:07:13
383
原创 redis(1):redis在不同平台下的安装方法及配置
1.windows下安装方法:在Windows系统上安装Redis数据库是件非常简单的事情,下载可执行安装文件(exe),双击安装即可。下载地址:https://github.com/rgl/redis/downloads Redis服务器运行命令:Redis安装目录/redis-server.exe Redis客户端运行命令:Redis安装目
2016-01-22 19:13:23
1147
原创 redis(源码1):封装hiredis库,提供直观的C++函数操作
最近抽时间把hiredis给封装了一下,便于编程,不用每次都查命令redis命令查询地址:http://doc.redisfans.com/index.html源码部分稍后会上传到资源包位置。/** redis_interface.h* Author: ws* Data: 2015-12-24* */#ifndef REDIS_I
2016-01-21 21:02:46
5497
13
原创 lua(实现代码(1)):使用lua将excel中的配置数据生成sql文件
本程序主要用于游戏编程等相关项目中,产品人员使用excel设计数据之后直接将相关数据生成sql,可以导入数据库excel格式及相关的使用方法,请下载数据包http://download.csdn.net/download/wentianyao/9401274该库使用了luacom组件所以只能在windows使用-- excel文件解析成sql文件-- ws-- 2015
2016-01-21 17:43:46
1475
原创 lua(1):lua,luarocks介绍及lua库安装
先说安装,然后在BB几大组建,目前除了tolua和wxlua用过外其他没用过:一:安装:Linux下安装方法:借助luarocks安装工具方法1: 1. 安装lua运行环境:$sudo apt-get install lua5.1 2. 安装lua开发环境:$sudo apt-get install liblua5.1-dev 3. 安装lua辅助部署环
2016-01-21 17:26:39
23004
6
原创 logger(三):其他log库的介绍(&glog的用法)
Glog等一些log库 在写代码的过程中,打log肯定是少不了的,毕竟不能总靠调试来发现问题。我们可以试着使用自己写一些log库,也可以使用现成的log库,成熟的log库非常多,log4cpp、log4cxx、poco.log、boost.log、glog、syslog等等.log4cpp: 开源的C++类库:提供在C++中使用日志和跟踪调试功能,使用log4cpp,可以很便利地将
2016-01-21 16:41:06
5672
原创 logger(二):linux下syslog & syslog-ng 详解
Linux下的sysylog与syslog-ng 一台服务器的日志对系统工程师来说是至关重要的,一旦服务器出现故障或被入侵,我们需要查看日志来定位问题的关键所在,所以说对于线上跑的服务器而言日志应该合理的处理及管理.下面来介绍下linux系统的syslog日志服务器.一、syslog详解1.1syslog简介syslog 是一种工业标准的协议,可用来记录设备的日志。在UNI
2016-01-12 17:19:49
8799
原创 logger(一):C++ & logger模块配置及开发
该logger模块是一种本地缓存形式的logger处理方法:用于相关软件开发过程中的日志记录;适用于windows和linuxLinux下的主要使用的是syslog-ng库
2016-01-12 14:42:20
2777
原创 数据库(3):配置数据缓存方案,其他形式
1. map建立的k-v形式:前面两种说到底其实就是map相关的数据形式或者类似的形式,只是进行模型化,便于识别或相关操作;这种形式和前面说的方法1有类似之处;只是一个是对象化一种是直接的数据形式。应用的时候为了简便可以直接对一个数据表建立一个map或多个map这样的数据形式然后就行处理,个人觉得根据自己的需求选择
2015-12-18 16:17:39
405
使用lua将已有的c++文件生成vs2013,vs2015工程项目
2016-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人