自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 ime stamp counter

再论 Time stamp counterhttp://www.cnblogs.com/ralphjzhang/archive/2012/01/09/2317463.html在很多年以前,rdtsc 指令是在 x86 平台作 micro benchmark 的不二选择,它可以用很小的代价(基本上在几十个 CPU 周期)获得时间戳计数器 (time stamp counter) 的值

2015-10-09 12:24:10 522

原创 关于__syn_fetch, mutexlock 性能比较

__sync_add_and_get()  1亿次;mutexl

2014-07-09 12:23:12 588

原创 音频指纹的算法--飞利浦解决方案

这个音频指纹暂时用来做同源音频聚类,判断歌曲是否是同一源的,这里先介绍下飞利浦的方案-------A Highly Robust Audio Fingerprinting System,这个算法是在他上面的优化,通过能量差分的关系,求得音频两个帧之间的能量关系,产生指纹。公共傅里叶变换成频率信息,把300 ---- 2000HZ 频率映射到33个频率带,计算各频率带的能

2014-02-28 13:33:35 5737 2

原创 写给自己的建议

1.写函数时,如果有返回值,首先写return 语句在linux写 c++一个函数声明了有返回类型,但是不返回对象也可以编译通过,但是运行会出现莫名其妙的错误,析构函数析构错误,class Object{    Object operator =(const Object &a){value=a.value;}}当我调用 Object a=Objec

2013-12-11 15:19:54 1458

原创 memcpy 与new 开销,在大数据处理时谨慎使用指针

因为最经做些大数据处理的事情,主要是IP地址的处理,拥有15G大小IP信息文件,每条消息 IP,地区,服务商把这些消息处理合并成 起始IP:结束IP 地区 ,服务商在处理的工程中发现当处理1万条数据时,花费时间居然是6S左右,我觉得这个太慢了开始排查到底是哪里导致程序慢了现在问题没有找全,但是有个问题已经很明显了,那就是memcpy 拷贝构造,与new的开销。在原来的程序中,每

2013-12-09 13:09:02 2584

原创 C++智能指针的非智能

#include #include #include "boost/lexical_cast.hpp"#include using namespace std;class A{public: A() { cout<<"construct A"<<endl; } ~A() { cout<<"delete A"<<endl; }};void fun(){ A

2013-11-28 15:38:16 699

原创 小样:内存管理系统实现,提供可持久化功能

基本思想:1.把内存分块管理,这里是把内存分为64字节一块2.下一块的地址,不是存储下一块的地址,而是相对偏移地址,为了持久化,3.把首64字节为保留空间,分别记录 空闲块链表的首地址,使用块链表的首地址首64字节定义struct HeadInfo{ int freeList; int usedList; unsigned int count; int unused[]};块的定义

2013-11-22 14:24:22 785

原创 关于c++中模板 T 无法限制的替代方案template< T extends Base>

在泛型编程成,经常要比较元素的大小,但是有时候我们无法完成规定T 必须拥有比较的接口。所以我们这里通过函数指定,T需要提供的比较内容templateint DefauletCMP(T a,T b){ if(a<b) return -1; if(a>b) return 1; if(a==b) { return 0; }}templateclass Test

2013-11-21 12:44:30 1562

转载 Disruptor无锁ringbuff实现

http://blog.163.com/zongyuan1987@126/blog/static/131623156201271021955717/?latestBlogDisruptor原理剖析  2012-08-11 23:06:43|  分类: java |  标签:storm  disruptor  java  |字号 订阅Disru

2013-10-28 16:01:51 1563

原创 多线程安全无锁消息队列

技术介绍:cas 原子操作:是有cpu提供的原子操作。MyDeque{ Node *head; Node *tail; void enQueue(T value); T deQueue();}入队操作void enQueue(T value){ node * q=getNewNode(); q->next=null;

2013-10-28 15:57:10 2598 1

转载 volatile实现机制

引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通

2013-10-25 15:57:04 703

转载 伪共享---cache line 填充

我们经常提到一个短语Mechanical Sympathy,这个短语也是Martin博客的标题(译注:Martin Thompson),Mechanical Sympathy讲的是底层硬件是如何运作的,以及与其协作而非相悖的编程方式。(注解:sympathy这里是共鸣、一致的含义)我在上一篇文章中提到RingBuffer后,我们收到一些关于RingBuffer中填充高速缓存行的评论和疑问。

2013-10-25 15:53:30 2419

原创 开方 牛顿迭代公式

牛顿迭代公式设r是f(x) = 0的根,选取x0作为r的初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'

2013-09-21 15:42:35 1546

原创 快速判断是否是兄弟字符串

题目如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何迅速匹配兄弟字符串?字符串有a--Z组成。初始化两个数据 int count_one['Z'-'a'+1],count_two[] 为0for(i=0;i{  count_one[*(str1++)-'a']++;   count_two[*(str2++)-a]++;}最后判断co

2013-09-20 20:21:10 923

转载 mysql 查询优化

一、 通过查询缓冲提高查询速度  一般我们使用SQL语句进行查询时,数据库服务器每次在收到客户端发来SQL后,都会执行这条SQL语句。但当在一定间隔内(如1分钟内),接到完全一样的SQL语句,也同样执行它。虽然这样可以保证数据的实时性,但在大多数时候,数据并不要求完全的实时,也就是说可以有一定的延时。如果是这样的话,在短时间内执行完全一样的SQL就有些得不偿失。  幸好MySQL为我们

2013-09-10 11:15:59 424

原创 poj 3281,最大流,牛吃食物问题

DescriptionCows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others.Farmer John has cooked fabulous meals for his cows, but he forgot

2013-09-09 15:14:22 834

原创 在O(1)时间复杂度中,求栈中的最小元素

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,弹出栈顶元素。输出:对应每个测试案例中的每个操作,若栈不为空,

2013-09-08 21:21:13 1348

原创 不用+-实现两个数相加

方法一 用逻辑运算a^b 表示a+b 中每位不进位的和,(a&b) 思想是两个数字相加中能分解成不进位的和  + 每一位相加进位a+b = a^b +(a&b)如果a&b==0的时候a+b=a^b;负整数运算也可以,因为补码运算,不存在减法。所以反复迭代,一直到所有的进位为0long add( long a, long b){ long carry

2013-09-06 18:40:12 2368

原创 2014百度提前校招

今天2014百度校招(提前批):网页搜索部门。不过基本上只要数据挖掘的人。挺主持人介绍,百度想做的 知识图谱。利用现有的百度内容,同时还有购买的内容。数据清理,提取数据。建立知识库,同时还有知识之间的关系。还有文本理解。最终目的:基于语义的搜索。输入搜索的问题,直接返回结果对于用户的输入直接给出结果如果真的完成了,感觉好多内容供应商基本上完蛋了,

2013-09-02 23:15:33 697

原创 雷达覆盖岛屿的问题

acm的题在地平线两侧,存在着岛屿,现在需要安装对岛屿进行监控,雷达的辐射半径是 r , 岛屿以坐标表示,地平线为X轴,用最少的雷达监控所有的岛屿此题需要先建模以岛屿为圆心,半径为r画圆,与X轴相交于两点形成一个闭区间[a1 b1],   [a2  b2]    [a3   b3]       [an   bn];下标为岛屿的编号, [an   bn]表示以岛屿n为圆心

2013-08-30 19:07:03 1086

原创 c++实函数虚函数在继承体系中是如何调用的

函数是属于类的,不是属于对象。我们来讲函数的调用机制,在c++中函数分为,实函数和虚函数,他们的调用机制不同。先来看看类的编译信息,对于一个类他的编译信息中含有 1.实函数,2.虚函数,这些静态调用是用,由于虚函数有动态调用的特征,所以虚函数存在一个虚函数表里,被所有的对象共享。既然虚函数信息既在类信息中,也在虚函数表中,那么虚函数调用是如何区分的了?1.静态调用,当虚

2013-08-29 23:09:50 1544

原创 一个数组实现三个栈

基本思想是:第一个栈 为数组头,栈增长方向向上;第二个栈,数据尾,栈增长方向向下,第三个栈,在数组中间,栈增长方向向下;第一个与第二个栈不用搬迁,因为他们都在数组的端,第三个栈,需要搬迁,来满足三个栈对空间的需求,搬迁的策略:采用慵懒的策略,只有三个栈中其中一个进行push操作是,如果没有足够的空间,才搬迁第三个栈;代码:class threeStackUs

2013-08-28 17:00:49 935

原创 链表表示的数字相加

题目You have two numbers represented by a linked list, where each node contains a single digit. The digits are stored in reverse order, such that the 1’s digit is at the head of the list. Write a fu

2013-08-28 13:18:05 718

原创 单链表中通过某一结点指针删除该结点

删除p指向的结点:思路:把p的下个结点内容拷贝到p,然后把删除p的下个结点;/*考虑的情况:1. p是空2.p 指向单链表最后一个结点;3.p 指向单链表的头结点*//*input :P,将要删除结点的指针output : 1(成功),0(失败),-1(失败,但是把结点删除了)功能:删除链表中的结点*/int deleteTheNodeInL

2013-08-28 10:26:17 1171

原创 链表中倒数第K个元素,

/*在链表中找倒数第k个元素考虑的问题 :链表可能会空,K可能会很大,超过链表的个数,链表的结点个数超过int 表示的范围*/LinkNode *findTheLastKInlist (LinkNode *head,int k){ LinkNode *tem=NULL; tem=head; LinkNode *pLastK=NULL;//the last kth node p

2013-08-28 09:46:28 473

原创 高效率安排见面会问题(比编程之美的解法复杂度低n-1个数量级)

在编程之美中,有一道高效安排见面会的问题问题描述如下 已知有n位学生,他们分别对M个研究项目中的若干个干兴趣,每个见面会的时间为T,每个学生都能参加自己感兴趣的所有见面会,如何安排时间总时间最短??编程之美的解法把该问题转化成图染色的问题,每个见面会为一个点,如果有个同学对其中两个见面会感兴趣,那么这两点就有一天联系,染色问题:就是如果两个点之间有连线,那么他们要用不同的颜

2013-08-26 22:39:46 873

原创 网络管理服务器多做之过

现在网络管理软件一般轻客服端+服务器+代理完成网络管理功能。本文主要讨论网络管理服务器断到底该干什么,既服务器端的多做之过错,与少做之过,以及用什么来衡量网络管理服务器至少尊重如下规矩,1.网络管理服务器应该不要关注所传输内容的意义,    只有客服端才关注数据的意义,对于服务器端,应该把所有涉及到与数据意义有关事情交给客服端来做。2 服务器端,应该只依赖协议和MIB库MI

2013-08-26 14:36:58 615

原创 c++如何生成一个不能被继承的类

在java 中final  可以定义 一个类不能被继承,c++中没有这个,但是c++可以实现这个类。大家知道union 是不能被继承的1.union,匿名类union  finaClass{public:  class { .......。。。。。。。} data;};finalClass finaData;这样匿名类只能用,不能被继

2013-08-25 22:16:56 553

原创 你还不知道的sizeof()

C++中,以VS2010为编译环境;在vs的环境下。这里不讲字节对齐的东西,很多写字节对齐的文章。讲编译对象的时候,编译器给对象存储空间加入的数据;1. 类中有vitual 函数时候,会加入一个vfptr指针,只想虚函数表,表中存储着所有该类虚函数的地址,C++中的多态机制就是靠他来实现的。2. 如果是虚继承,会加入一个vbptr的指针,指向虚基类;class BaseEm

2013-08-24 17:08:16 598

原创 大数据处理算法(非分布式处理)

题目都是重网上收集而来1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,

2013-08-24 16:50:03 653

原创 new [] 与new []()区别

new int[10] ;new int[]();前者是随机值,后者会初始化为0;

2013-08-24 16:45:38 598

原创 32位系统与64位系统 C/C++通用代码

c++/C 并没有规定内建数据类型具体size;只规定了一些规则,比如int 长度不必long长数据类型长度数据类型ILP32LLP64char88int3232long3264long long6464short1616pointer32

2013-08-23 00:28:59 1795

转载 伪随机解决真随机问题

从文件中随机取一行数据如果先统计文件有多少行,再根据rand() % 行数选择对应行也是可以行的,但效率显然会有点低了。有没有一种方法可以只遍历文件一次了?请看代码:[cpp] view plaincopy//从文件中取机选取一行  #include   #include   #include  #include int

2013-07-09 21:48:26 1049

空空如也

空空如也

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

TA关注的人

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