自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(330)
  • 资源 (7)
  • 收藏
  • 关注

转载 ctemplate 详细介绍

ctemplate 详细介绍ctemplate (Google-ctemplate)的设计哲学是轻量级,快速,且逻辑和界面分离,因此和ClearSilver和Teng是有一些差异的。比如Ctemplate就没有模板函数,没有条件判断和循环语句(当然,它可以通过变通的方式来实现)。ctemplate大体上分为两个部分,一部分是模板,另一部分是数据字典。模板定义了界面展现的形式(V),数据

2017-03-28 15:54:19 2521

转载 Linux下常用的“聊天”命令

当我们在Linux的终端下使用命令“who”或“w”时,我们总会看到一长串的用户列表,此时,你是不是很想发送一个消息给他/她。如果她是一个你心仪很久的MM,而你正好看到她也在,迫于害羞的你,是不是此时想发送一个消息给她,说声“hello,你也在呀”或是“咦,这么巧”。嘿嘿,你是不是很期待,下面就来介绍几个命令,让你发送给她或他。  write:发送消息给这个系统的其他用户。用法

2017-03-19 16:47:54 3811

转载 由浅入深了解Thrift之服务模型和序列化机制

一、Thrift介绍                                                                                         Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎。其允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来

2017-03-14 21:31:01 745

转载 virtual public 含义

在类重载中我们一般使用以下的方式: class   Base {     void   Echo()   {   printf( "Echo   from   Base ");} }; class   Middle   :   public   Base   {} class   Child   :   public   Middle   {} 可以很清

2017-03-14 21:01:24 934

转载 模拟生产环境使用thrift c++版

模拟生产环境使用thrift c++版1. 简介本文简单的模拟了实际生成环境场景中使用的C/S模型,使用thrift作为框架来进行开发,服务端实现了两个接口,使用ThreadPoolServer模型提供服务,由于只是学习thrift相关的使用,本文的代码不是很严谨,代码设计基本没有,请阅读本文之前最好有基本的thrift相关的知识。如 * thrift文件中的基本数据类型 

2017-03-14 20:45:51 879

转载 boost智能指针

这篇文章主要介绍 boost中的智能指针的使用。    内存管理是一个比较繁琐的问题,C++中有两个实现方案: 垃圾回收机制和智能指针。垃圾回收机制因为性能等原因不被C++的大佬们推崇, 而智能指针被认为是解决C++内存问题的最优方案。1. 定义     一个智能指针就是一个C++的对象, 这对象的行为像一个指针,但是它却可以在其不需要的时候自动删除。注意这个“其不需要的时

2017-03-13 11:35:57 319

原创 ubuntu 安装thrift

一、更新apt-get 源为阿里云的软件源1、复制原文件备份sudo cp /etc/apt/sources.list  /etc/apt/sources.list.bak2、编辑源列表文件sudo vim /etc/apt/sources.list3、将原来的列表删除,添加如下内容deb http://mirrors.aliyun.com/

2017-03-13 11:34:57 739

转载 c++虚继承的概念

C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式  基类名virtual是关键字,声明该基类为派生类的虚

2017-03-11 15:41:39 261

转载 Linux下用ifconfig命令设置IP、掩码、网关

设置IP和掩码ifconfig eth0 192.168.5.40 netmask 255.255.255.0设置网关route add default gw 192.168.5.1

2017-03-09 15:38:08 1275

转载 Redis和MySQL的结合方案

方案由从易到难的顺序,但无论哪种方法,都需要保证的是Reids和MySQL的数据一致性。方案一:程序同时写Redis和MySQL读Redis方案二:程序写MySQL, 使用Gearman调用MySQL的UDF,完成对Redis的写读Redis方案三:程序写MySQL, 解析binlog,

2017-03-09 14:23:56 484

转载 Memcached 及 Redis 架构分析和比较

版权声明:本文为博主原创文章,未经博主允许不得转载。作者:刘旭晖 Raymond 转载请注明出处Email:colorant at 163.comBLOG:http://blog.csdn.net/colorant/Memcached和Redis作为两种Inmemory的key-value数据库,在设计和思想方面有着很多共通的地方,功

2017-03-09 14:07:39 286

转载 C++操作Redis数据库

http://blog.csdn.net/achelloworld/article/details/41598389主题 Redis 数据库 C++今天,Mayuyu来学习如何用C++来操作redis数据库。通过hiredis.h接口来实现,目前只能在Linux环境使用。hiredis.h 的下载地址为: https://github.com/redis/hired

2017-03-09 11:04:00 874

转载 MYSQL sql 语句性能分析

在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时

2017-03-06 23:08:34 4943 1

转载 50个sql语句

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号;   select a.S# from (select s#,score from SC where C#

2017-03-06 21:49:44 313

转载 Cache和Buffer的区别

1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。    Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache

2017-03-06 21:46:48 316

转载 常用性能分析工具

录top列含义vmstatprocsmemoryswapiosystemcpuuptimefreeiostatcpuDevicesarmpstatpmapnetstattcpdumpstracelsofproc文件系统Benchmark  在Linux性能调优之前,首先需要了解当前服务的运行状态

2017-03-06 21:38:05 5664

转载 strace+pstack 性能调试程序

引言有时我们需要对程序进行优化、减少程序响应时间。除了一段段地对代码进行时间复杂度分析,我们还有更便捷的方法吗?若能直接找到影响程序运行时间的函数调用,再有针对地对相关函数进行代码分析和优化,那相比漫无目的地看代码,效率就高多了。将strace和pstack工具结合起来使用,就可以达到以上目的。strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用

2017-03-06 21:18:51 399

转载 一种定位内存泄露的方法(Solaris)

问题:客户测试的镜像环境出现一个3.8G的core文件,查看堆栈发现是new失败了导致进程abort。因为是32位应用程序,应该是所有的heap空间都被用光了,导致new失败。推测有几种可能:1) 内存泄露导致内存耗尽。2) 有些静态对象处理的不合理,导致一直在增大。3) 有死循环,导致一直在做类似list::insert这样的操作,最终耗尽内存。定位思路:如果是第二种

2017-03-06 13:46:18 549

转载 关于数据库主键和外键(终于弄懂啦)

一、什么是主键、外键:关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如  学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一

2017-03-05 21:21:08 11821

转载 MYSQL性能查看(命中率,慢查询)

网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。  mysql> show global status;  可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句:  

2017-03-05 21:19:41 347

转载 TCP重传的次数和间隔时间

第一次发送后所设置的超时时间实际上为1.5秒,此后该时间在每次重传时增加一倍,一直到64秒,采用的是指数退避算法。一共重传12次,大约9分钟才放弃重传,该时间在目前的TCP实现中是不可变的,Solaris2.2允许管理者改变这个时间,tcp_ip_abort_interval变量。且其默认值为两分钟,而不是最常用的9分钟。

2017-03-05 20:05:38 16607

转载 数据库为什么要分库分表

1 基本思想之什么是分库分表?从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。2 基本思想之为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CP

2017-03-03 13:58:50 228

转载 经典算法题:大数据处理常见算法题

第一部分、十道海量数据处理1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个

2017-03-03 10:19:53 1341

转载 算法题--大数据取最大前几个

10亿个整数,随机生成,可重复,求最大的前1万个。当时我一下子就蒙了,没反应过来,何况我还正在烧着菜呢,所以我就没细想,说了一个连我都鄙视我的思路:我说导入数据库,然后用select语句选出最大的前1万个。可能我的答案连面试官都无语了,所以他就没再往下问了,不过他还是通知我明天16号早上去腾讯大厦笔试,由于我明天没空,就推迟到了17号早上10点。至此,整个电话面试就结束了。过后,我想了想,10亿个

2017-03-03 09:49:45 4742 2

转载 快速排序时间复杂度分析

快速排序的基本思想是:每次从无序的序列中找出一个数作为中间点(可以把第一个数作为中间点),然后把小于中间点的数放在中间点的左边,把大于中间点的数放在中间点的右边;对以上过程重复log(n)次得到有序的序列。    快速排序的时间复杂性分析:排序的大体如下图所示,假设有1到8代表要排序的数,快速排序会递归log(8)=3次,每次对n个数进行一次处理,所以他的时间复杂度为n*log(n)。所以

2017-03-03 09:39:33 1797

转载 FLV, TS, MP4封装格式大小比较

对于相同的音视频内容,使用三种不同的封装格式,则文件体积从大到小依次为TS -> MP4 -> FLV FLV和MP4封装格式的文件大小基本相等。例如:对于同一个文件,采用相同的编码设置,封装为不同的格式[root@localhost ffmpeg-2.1.1]# ffmpeg -i test_wei.flv -t 10  -vcodec libx264 -x2

2017-03-02 16:54:52 12214

转载 FLV视频封装格式详解

OverviewFlash Video(简称FLV),是一种流行的网络格式。目前国内外大部分视频分享网站都是采用的这种格式.File Structure从整个文件上开看,FLV是由The FLV header 和 The FLV File Body 组成.1.The FLV headerFieldTypeCommentSi

2017-03-02 16:53:04 226

转载 堆排序原理及算法实现(最大堆)

堆排序       堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆  堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:  Key[i]=Key[2i+1]&&key>=key[2i+2]  即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。  堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>

2017-03-02 14:44:40 230

转载 时间复杂度计算方法

int num1, num2;for(int i=0; in; i++){ num1 += 1; for(int j=1; jn; j*=2){ num2 += num1; }} 每循环一次乘了 . 初始为 ,所以循环 次之后 . n" style="max-width:100%; vertical-align:middle; display:inline

2017-03-02 13:23:43 397

转载 C++ STL中Map的按Key排序和按Value排序

map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map,其中学生姓名用string类型,作为Key;该学生的成绩用int类型,作为value。这样一来,我们可以根据学生姓名快速的查找到他的成绩。        但是,我们除了希望能够查

2017-02-24 23:13:18 235

转载 csrf漏洞

Rails CSRF安全性功能以及取消form验证預設產生出來的 Controller 都繼承自 ApplicationController 。因此定義在這裡的方法可以被所有 Controller 取用,你可以在這邊定義一些共用的方法。預設的 application_controller.rb 長的如下:class ApplicationController pro

2017-02-16 15:42:15 486

转载 sql website注入 渗透测试

git clone git://github.com/sqlmapproject/sqlmap.git

2017-01-13 14:30:00 389

转载 不错的

很多研究PL的人喜欢看低其它程序员,认为自己能设计实现程序语言,就是天之骄子。我之所以从Dan Friedman那里学到了好东西,却没有成为他的PhD学生,一方面就是因为看不惯围绕在他身边那些自认为是“天才”的人。总是有那么一群本科生,自认为掌握了Friedman所讲授的精髓,所以高人一等。其实呢,他们的水平比起我这样的,其实差的天远。于是我就经常无奈的看着他们,吵吵闹闹的宣讲他们解决的“

2017-01-10 18:58:53 280

转载 Cancan权限角色设计的最佳实践

15 November 2014简介权限存取设计是在开发 Application 中相当棘手的问题。在网站开始建设的初期,通常这样的问题并不会浮现,毕竟一般人的需求大半只会有 user 和 admin 两种角色。但是随著网站演化,更多的业务需求浮现,第三种角色的出现,通常就会把原本干净的 code 弄得肮脏不堪。多种角色的权限设计难题当只有 user 和 admin

2016-12-16 16:51:00 654

转载 SVN merge的主干,分支的相互合并操作

本文只研究了 在本地如何进行主干,分支的相互合并 的操作:从主干到分支,从分支到主干。本地客户端工具是tortoisesvn   测试用例。1.本地添加test文件夹在test文件夹下分别建立trunk,branches两个文件夹,建立好以后,提交到svn服务器端此处的test文件夹的意义相当于一个单独的工程项目,trunk用

2016-12-14 12:07:42 8140 1

转载 Ruby on Rails 终极部署方案 nginx+mina+puma

搭建工具介绍Ruby on Rails作为一款十分优秀的web开发框架,在当前web领域中慢慢占据了越来越重要,秉承rails快速开发的特点,很多快速部署rails的方案也越来越多。这篇文章中所选的方案是我个人认为十分优秀的部署方案。这套部署方案的结构是,nginx作为反向代理服务器负责负载均衡,mina作为自动化部署工具,puma作为rails的web服务器nginxnginx是

2016-12-14 10:01:32 2121

转载 PostgreSql新手入门命令

1 命令行登录数据库有两种方式,一是直接在系统shell下执行psql命令;而是先进入psql环境,然后再连接数据库。下面分别给出实例:(1)直接登录执行命令:psql -h 172.16.35.179 -U username -d dbname ,其中username为数据库用户名,dbname为要连接的数据库名,执行后提示输入密码如下:Password for user

2016-12-12 18:05:47 3126

转载 ubuntu 使用securecrt vi编辑出现的问题

在Ubuntu下,初始使用vi的时候有点问题,就是在编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现[A [B [C [D之类的字母,而且编辑错误的话,就连平时关于的退格键(Backspace键)都使用不了,只能用Delete来删除。针对这个问题,网上的答案有很多,例如是安装完整版的vim啊,编辑/etc/vim/vimrc.tiny等方法,很杂很乱,在这里我就做个详细的总结吧:

2016-12-03 10:58:31 1945

转载 nmap xxxxxxx.com

查看网站开启的端口

2016-12-02 14:12:21 509

转载 linux下IPTABLES配置详解

linux下IPTABLES配置详解如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source           

2016-12-02 14:10:18 168

RTP 开发介绍

流媒体传输介绍,以及rtp rtcp rtsp 的编码使用举例.

2015-07-20

xml 封装接口

基于tinyxml库的封装源码,主要是针对log and config file interface

2014-06-20

mysqldump基本用法

mysqldump 指导你使用怎么使用导入导出功能

2014-06-19

stm32适合移植的操作系统

本文详细分析了 在stm32的硬件平台上适合移植哪些嵌入式操作系统。

2013-08-02

ucos ii +stm32

此文档 很快 很便捷的教会初学者 移植Ucos ii 到stm32的平台上。

2013-08-02

stm32f103e+uClinux移植说明

这篇文档说明了怎么在STM32平台上搭建UClinux的开发环境,以及一些移植步骤

2013-08-02

FreeRTOS+STM32

本文介绍了如何在STM32103VC的平台上移植FreeRTOS嵌入式操作系统,以及移植过程中的问题解决方法。

2013-08-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除