自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

神技圈子的博客

分布式存储/人工智能/大厂面试经验分享平台

  • 博客(15)
  • 收藏
  • 关注

原创 C++ 虚函数表及多态内部原理详解(三)

(三)多重继承(无虚函数覆盖)下面我们再看看多重继承的情况 对于子类实例中的虚函数表,是下面这个样子: 从图上我们可以看到1)每个父类都有自己的虚表。2) 子类的成员函数被放到了第一个父类的表...

2019-02-26 21:48:02 6013 1

原创 C++ 虚函数表及多态内部原理详解(二)

实在不好意思,这几天有事没有及时更新。下面继续(二)一般继承(有虚函数覆盖)如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?假设,我们有下面这样的一个继承关系。如图所示: 在这个类的设计中,只覆盖了父类的一个函数:f()。那么,对于派生类的实例,其虚...

2019-02-26 21:33:29 3538

原创 C++ 虚函数表及多态内部原理详解(一)

C++中 的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术 可以让父类的指针有“多种形态”,这是一种泛型技术。虚函数表每个含有虚函数的类都有一个虚函数表(Virtual Table)来实现的。简称为V-Table。C++的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证...

2019-02-24 00:24:14 5947 2

原创 Hadoop MapReduce框架介绍

  Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。软件框架如下图所示:  Client:用户编写的Mapreduce程序通过Client端提交给JobTracker端;Client还提供一些查看作业运行状态的接口JobTr...

2019-02-21 22:24:45 3081

原创 分布式计算任务调度算法总结

一、影响分布式系统性能的因素主要有这些因素影响着分布式系统的性能:网络延迟、数据通信效能、计算节点处理能力、任务的分割、无法预算处理时间、任务的颠簸等等。我们在寻求分布式计算调度算法时,就是有针对性的以解决这些问题为目的,从各个角度,不同侧面,利用一种或者集中方法结合起来的形式,从而达到最优解,使得系统效率相对最高。二、几种基本的调度算法获得网络负载均衡有几个基本的方法。这些方法可以结合使...

2019-02-20 17:08:55 19409 2

原创 MySQL 存储引擎 (SphinxSE)安装详解

sphinxSE是一个mysql存储引擎,它可以编译进入mysql server之中,但必须版本是5.x(5.0.22或者5.0.x更高版本,5.1.12或者更高但5.1.x),在这里我采用的是5.1.55,Sphinx版本是coreseek-3.2.14,注意5.0.x的安装方式不一样,虽然是一个搜索引擎但是SphinxSE本身不存储数据,它是一个内置的客户端,允许mysql服务器与Sphinx...

2019-02-19 18:23:08 5152

原创 FUSE架构详解

整体架构及流程fuse为多线程并发模型,每个worker线程都在读取/dev/fuse中的请求,这样就保证线程之间的同步,当读取到一个请求之后,线程就开始处理该请求,但如果监听线程为0,则继续创建新的线程进行监听,处理完请求之后,如果线程的数量超过限制(10个),就退出该线程。整个框架如下: worker线程通过请求派发函数fuse_ll_process派发请求之后,根据opcod...

2019-02-18 09:40:34 17726

原创 B树的插入、删除操作详解

背景在大规模数据存储中,在实现索引查询这样一个实际背景下,二叉查找树结点存储的元素数量是有限的,这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下,那么如何减少树的深度(当然是不能减少查询的数据量),一个基本的想法就是:采用多叉树结构,B树也就应运而生。B树的定义一棵m阶的B树满足下列条件∶每个结点至多有m棵子树。  除根结点外,其它每个分支...

2019-02-17 13:35:09 22747 5

原创 Hadoop MapReduce验证分析

1、输入文件输入文件为一个1.2GB的文本文件,通过wc命令可以验证文本文件的行数,和总的单词个数。运行命令:hadoop jar /root/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input/output行数为26048904单词个数为:...

2019-02-16 20:33:32 6054

原创 阿里校招软件开发岗位实习生面试经验分享

 本人曾参加过阿里校招面试,并顺利通过。现将当时的一些面试经验同大家分享。1、简历准备1.1 要求:简洁至上,突出项目,实习经历,获奖经历等1.2 参考模板教育背景 实习经历 项目经历(项目描述 + 个人职责 ) 所获奖励 个人技能整个简历页数最好控制在1 至 2 页 内比较好的Latex 模板网站推荐: http://www.latexstudio.net/a...

2019-02-16 20:21:58 5659

原创 Hadoop2.2 在Linux下的配置详解

1、环境准备1.1  java环境准备由于hadoop需要运行在java环境下,所以,java环境是必须的,需要安装jdk,最好不要用linux上自带的openjdk,需要用oracle官网提供的jdk才行。下载jdk网址为: http://www.oracle.com/technetwork/java/javase/downloads/index.html安装方法请自行参阅官...

2019-02-16 20:02:46 4608 2

原创 C++中Bitwise Copy带来的问题实例讲解

在对象拷贝过程中,如果没有显示定义默认拷贝构造函数和默认赋值构造函数,编译器会提供相应的缺省函数,该函数是"按位"进行拷贝或者赋值。对于只含有POD成员数据的简单类,bitwise copy方式绰绰有余。但是倘若类比较复杂,类成员中包含有指针、引用、虚函数时会出现错误。    以类A为例,类A定义如下图所示        假设创建对象a1,a2,a2通过a1拷贝,要是未定义默认拷贝构造...

2019-02-16 11:48:42 4484

原创 Memcached删除机制

Memcached 不会释放已分配的内存(这个跟Memcached实现的内存存储机制有关,可以查看Memached内存存储机制文章)。记录超时后,客户端就无法再看见该记录(invisible,透明),其存储空间即可重复使用。Memcached 会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机制来分...

2019-02-16 10:23:13 3907

原创 Memcached 内存存储机制

最近的 Memcached 默认情况下采用了名为 Slab Allocator 的机制分配、管理内存。在该机制出现以前,内存的分配是通过对所有记录简单地进行 malloc 和 free 来进行的。但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下,会导致操作系统比 memcached 进程本身还慢。Slab Allocator 就是为解决该问题而诞生的。Slab Allo...

2019-02-16 10:17:43 2697

原创 HandlerSocket的安装实例及性能测试

 一 HandlerSocket简介Hanldersocket是一个MySQL守护进程插件,它让应用程序可以将MySQL当NoSQL使,Hanldersocket的主要目的是与存储引擎,如InnoDB交互,而不需要SQL相关的开销。访问MySQL表时,Hanldersocket仍然需要打开和关闭表,但不是每次访问都要求打开和关闭,因此减少了互斥争夺,极大地提高了系统性能,当流量变小时,Ha...

2019-02-14 20:25:11 5637 2

空空如也

空空如也

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

TA关注的人

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