自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C++11特性

C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出来,分享给大家,希望对各位读者有帮助,文章中的总结可能存在很多不完整或有错误的地方,也希望读者指出。大家可以根据如下目录跳到自己需要的章...

2018-05-29 00:23:26 381

转载 Linux编程中的文件锁之flock

1. 场景概述    在多线程开发中,互斥锁可以用于对临界资源的保护,防止数据的不一致,这是最为普遍的使用方法。那在多进程中如何处理文件之间的同步呢?我们看看下面的图:                                     图中所示的是两个进程在无同步的情况下同时更新同一个文件的过程,其主要的操作是:1. 从文件中读取序号。2. 使用这个序号完成应用程序定义的任务。3. 递增这个...

2018-04-11 00:22:54 614

转载 C/C++ 分支预测(likely unlikely)

看一些代码时,会遇到likely unlikely, 查了查网上的资料,结合自己的理解记录一下。1. 一些概念  指令周期是指执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到指令执行完所需的全部。  预取指令具体方法就是在不命中时,当数据从主存储器中取出送往CPU的同时,把主存储器相邻几个单元中的数据(称为一个数据块)都取出来送入Cache中。预取指令可以更好的利用 cp...

2018-04-08 23:05:01 2037

转载 最长递增子序列

最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS。排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了。假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。下面一步一步试着找出它。我们定义一个序列B[1..9],然后令 i = 1 to 9 逐个考察这个序列。此外,我们用一个变量Len来记...

2018-04-02 23:03:51 282

转载 最长gong'g子序列

1.基本概念      首先需要科普一下,最长公共子序列(longest common sequence)和最长公共子串(longest common substring)不是一回事儿。什么是子序列呢?即一个给定的序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果。什么是子串呢?给定串中任意个连续的字符组成的子序列称为该串的子串。给一个图再解释一下:

2018-04-02 22:50:49 269

转载 数组中出现一半的数字

寻找数组中出现一半以上的数字int find(int a[],int N){    int num=0;    int count=0;    for(int i=0;i<N;i++)    {            if(count==0)            {                       num=a[i];                        count++...

2018-03-29 22:37:44 244

原创 select与epoll阅读(待补充)

1.selectl流程图

2018-03-27 00:16:54 162

转载 sort参数含义

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。12345678910[lisp@lisp tomatoes]# cat seq.txtbananaapplepearorange[lisp@lisp tomat...

2018-03-23 00:37:10 3692 1

转载 计算字符串的相似度-两种解法

以下叙述摘自编程之美一书:许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:1.修改一个字符(如把“a”替换为“b”);  2.增加一个字符(如把“abdd”变为“aebdd”);3.删除一个字符(如把“travelling”变为“traveling”);比如,对于“abcdefg”和“abcdef”...

2018-03-21 23:02:36 2379

转载 字符串的全排列和组合算法

全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *str), ...

2018-03-12 23:34:13 226

转载 Linux 常用文本命令

文件搜索 find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 'user1' 的文件和目录 find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 find /usr/bin -type f -atime +100 搜索在过去100天内未...

2018-03-06 00:17:04 395

转载 可递归锁与非递归锁

最常见的进程/线程的同步方法有互斥锁(或称互斥量Mutex),读写锁(rdlock),条件变量(cond),信号量(Semophore)等。在Windows系统中,临界区(Critical Section)和事件对象(Event)也是常用的同步方法。 简单的说,互斥锁保护了一个临界区,在这个临界区中,一次最多只能进入一个线程。如果有多个进程在同一个临界区内活动,就有可能产生竞态条件(race co...

2018-03-04 10:34:52 324

转载 C语言中的可变参数函数 三个点“…”

第一篇 C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式: printf("%d",i); printf("%s",s); printf("the numb...

2018-03-03 13:44:10 1078

转载 Linux中configure/makefile的用法实例(附代码)

转自:http://blog.chinaunix.net/uid-24704319-id-2594460.html本文教你如何使用autoconf、automake等来制作一个以源代码形式(.tar.gz)发布的软件、并可在执行configure时使用自定义参数。一、概述和基础知识  在Linux下得到一个以源代码形式发布的包(一般为.tar.gz或.tar.bz2格式),我们可以用 ./conf...

2018-03-03 13:00:02 967

转载 libevent安装使用

Libevent介绍在include\event2\event.h中有关于Libevent的介绍,这里简单翻译介绍一下: Libevent是以事件为驱动的开发可扩展的网络服务端的库。开放的API设置事件的回调函数,当事件来临时调用这个回调函数。它还支持信号和定时器。开发者只需要简单的add/remove来将事件添加到event loop中,通过event_dispatch驱动event。Libev...

2018-03-03 10:48:05 1111

转载 do {...} while (0) 在宏定义中的作用

如果你是一名C程序员,你肯定很熟悉宏,它们非常强大,如果正确使用可以让你的工作事半功倍。然而,如果你在定义宏时很随意没有认真检查,那么它们可能使你发狂,浪费N多时间。在很多的C程序中,你可能会看到许多看起来不是那么直接的较特殊的宏定义。下面就是一个例子:12#define __set_task_state(tsk, state_v

2018-03-02 00:16:25 166

原创 MySQLDBA修炼之道读书笔记

以下的命令将查看慢查询是否启用了,以及慢查询的日志路径。mysql> show variables like'%query_log%'; -------------show variables like'%query_log%' -------------+---------------------+-----------------------------------------+ | V...

2018-03-01 23:38:29 1190

转载 mmap映射区和shm共享内存的区别总结

linux中的两种共享内存。一种是我们的IPC通信System V版本的共享内存,另外的一种就是我们今天提到的存储映射I/O(mmap函数)在说mmap之前我们先说一下普通的读写文件的原理,进程调用read或是write后会陷入内核,因为这两个函数都是系统调用,进入系统调用后,内核开始读写文件,假设内核在读取文件,内核首先把文件读入自己的内核空间,读完之后进程在内核回归用户态,内核把读入内核内存的...

2018-02-28 23:04:36 394

转载 Zookeeper的功能以及工作原理

1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 NameSer...

2018-02-28 22:53:15 413

转载 Linux进程间通信——使用共享内存

下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc

2018-02-27 23:37:15 184

转载 wait函数详解

#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一

2018-02-26 23:55:13 30015 2

转载 redis排行榜相关

排行榜是业务开发中常见的一个场景,如何设计一个好的数据结构能够满足高效实时的查询,下面我们结合一个实际例子来讨论一下。场景选手报名参加活动,观众可以对选手进行投票,每个观众对同一名选手只能投一票,活动期间最多投四票。后台需要提供如下接口:接口1:返回TOP 10的选手信息及投票数接口2:返回活动总参与选手数及总投票数接口3:对于每个选手,返回自己的投票数,排名,距离上一名差的票数基于数据库的方案首...

2018-02-25 21:22:12 1582

转载 const分别在C和C++语言里的含义和实现机制

简单地说:const在C语言中表示只读的变量,而在c++语言中表示常量.C语言const是constant的缩写,是恒定不变的意思,也翻译为常量,但是很多人都认为被const修饰的值都是常量,其实这是不精确的.因为,精确来说应该是只读的变量,其值在编译的时候不能被使用,因为编译器在编译的时候不知道其存储的内容.或许当初这个关键字应该被替换为readonly.C语言中cons

2017-05-06 16:24:44 453

原创 gcc常用编译参数说明

gcc编译参数:-g:为了gdb调试使用,默认加上有利于后期直接定位coredump-O2:优化选项:O0 -->> O1 -->> O2 -->> O3-O0 不进行优化处理。 -O 或 -O1 优化生成代码。 -O2 进一步优化。 -O3 比 -O2 更进一步优化,包括 inline 函数-pipe:使用管道代替编译中临时文件,加速编译-wall:显

2017-05-06 15:41:29 755

转载 数据库的索引

数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。 4,对于小型的表,建立索引可能会影响性能 5,应该避免对具有较少值的字段进

2017-03-28 20:51:47 340

转载 rsync命令

如果你是一位运维工程师,你很可能会面对几十台、几百台甚至上千台服务器,除了批量操作外,环境同步、数据同步也是必不可少的技能。说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术。[不带任何选项]我们经常这样使用rsync:$ rsync main.c machineB:/home/userB1 只要目的端的文件内容和源端不一样,

2017-03-06 20:25:10 386

原创 strace 命令中的Linux命令

1.getsockopt(12, SOL_SOCKET, SO_ERROR, [-35232114945294336], [4]) = 0 setsockopt(7, SOL_SOCKET, SO_RCVTIMEO, "\0\0\0\0 N\0\0", 8) = 0 功能描述:  获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接

2017-02-07 21:11:00 418

转载 netcat----linux工具

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。下面是一些使用net

2016-11-21 23:35:10 494

转载 JsonCpp的简单实用

JsonCpp 是一个C++用来处理JSON 数据的开发包。下面讲一下怎么使用JsonCpp来序列化和反序列化Json对象,以实际代码为例子。反序列化Json对象比如一个Json对象的字符串序列如下,其中”array”:[...]表示Json对象中的数组:{“key1″:”value1″,”array”:[{"key2":"value2"},{"key2":"value3"},{"key

2016-11-18 00:24:43 377

转载 nohup

用途:LINUX命令用法,不挂断地运行命令。   语法:nohup Command [ Arg ... ] [ & ]   描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。 

2016-11-16 23:58:36 307

转载 Linux终端下后台运行程序被Stopped的原因以及解决

一、问题以及原因将一个可执行文件,放到后台运行时,一会就stoped,/AP_Connect &终端打印此信息:[1]+  已停止               ./AP_Connect然后使用 top 命令查看进程AP_Connect的状态为T,即Stopped该段程序的main.cpp,如下:[cpp] view plain

2016-11-16 23:11:04 11516

转载 gcc -l参数和-L参数

-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了 好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-lte

2016-11-06 10:22:53 312

转载 C++ 头文件顺序和隐含依赖

今天编写一个程序,拷贝另外一个文件的头文件时,没有注意头文件之间的内在依赖关系,导致编译出错,浪费了不少时间去定位和分析,才发现是头文件顺序不对导致的编译问题,这也给自己以后编写可靠代码时提供了一个主意项,准备参考google C++编程风格的头文件顺序。google C++编程风格对头文件的包含顺序作出如下指示:(1)为了加强可读性和避免隐含依赖,应使用下面的顺序:C标准

2016-11-04 00:17:54 5096

转载 gdb调试coredump文件

现在说下gdb+coredump的调试流程      在实机上先打开产生core文件的设置,ulimit -c unlimited  ,这将使程序在遇到断错误的时候保留下当时的堆栈信息,而这个core文件的大小没有进行限制,当然,还可以更改core文件的产生路径,具体可以google下。 之后运行断错误程序,获取产生的core文件。      运用平台指定的gdb程序  调用arm

2016-11-02 00:23:36 1107

转载 gdb常用调试命令

一.gdb常用命令:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)

2016-11-02 00:17:51 393

转载 Linux 目录结构及主要内容 1

“/”根目录部分有以下子目录:    /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。    /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等    /home 目录包含用户的文件:参数设置文件、个性化文件、文档、数据

2016-10-20 00:11:34 337

转载 HTTPS的压力测试工具 -- httperf

今天需要对cgi进行压力测试,选择了httperf模拟请求,访问CGI,在使用的过程中,发现到rate和conn-num较小时,测试返回HTTP返回码200,当rate和conn-num较大时,HTTP返回码大部分是50X,不知道是CGI的性能问题,还是其他参数配置问题,感觉不能很好的进行压测。(后期有需要再用用看,适当增加--num-calls数,默认值为1)使用方法:httperf

2016-10-12 23:56:28 5419 1

转载 nginx中的数据结构----ngx_str_t

ngx_str_t(100%)在nginx源码目录的src/core下面的ngx_string.h|c里面,包含了字符串的封装以及字符串相关操作的api。nginx提供了一个带长度的字符串结构ngx_str_t,它的原型如下:typedef struct { size_t len; u_char *data;} ngx_str_t;

2016-10-10 00:10:19 600

转载 OOM killer

今天服务器OOM告警,准备ssh登上去看看服务日志,找找内存泄漏位置。然后一直ssh不成功,最后网上搜了一下,发现可能触发了OOM killer机制,选择性的kill掉一些进程,这就有可能会kill掉sshd,这样就会导致ssh登不上。Linux下有一种OOM KILLER 的机制,它会在系统内存耗尽的情况下,启用自己算法有选择性的kill 掉一些进程。一、为什么会有OOM

2016-10-09 00:32:47 343

转载 http长链接实现浅析

keepalive当然,在nginx中,对于http1.0与http1.1也是支持长连接的。什么是长连接呢?我们知道,http请求是基于TCP协议之上的,那么,当客户端在发起请求前,需要先与服务端建立TCP连接,而每一次的TCP连接是需要三次握手来确定的,如果客户端与服务端之间网络差一点,这三次交互消费的时间会比较多,而且三次交互也会带来网络流量。当然,当连接断开后,也会有四次的交互,当然

2016-10-03 10:21:52 1440

C++函数速查

C++函数速查,包含了C++中各类函数的介绍,适合于我们快速查找函数的功能

2014-03-14

JNI技术各类文档

jni详解 JNI设计实践之路 JNI技术手册 Java_JNI_编程进阶 android_jni操作指南

2014-03-14

基于.NET的Google+Earth与地学类精品课程网站的集成

基于.NET的Google+Earth开发,对初学google earth使用的很有帮助

2013-11-14

webservice

AXIS、webservice平台的搭建,以及测例

2013-07-15

c#与sql server远程连接

C# 与SQL server 连接,执行SQL语句 向各种控件导入数据 combobox datagridview listbox等

2013-07-15

R语言入门教程

R语言入门教程,适合R语言初学者的一本教材,普及R的运用好书

2011-11-12

Perl语言入门

适合对perl语言感兴趣的人自学或者作为老师教程

2011-10-20

空空如也

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

TA关注的人

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