- 博客(228)
- 资源 (26)
- 收藏
- 关注
原创 switch fall-through
最近看leveldb代码util/hash.cc实现有这么一段代码uint32_t Hash(const char* data, size_t n, uint32_t seed) { // Similar to murmur hash const uint32_t m = 0xc6a4a793; const uint32_t r = 24; const ch
2017-12-02 16:54:56 1947
转载 认真分析mmap:是什么 为什么 怎么用
认真分析mmap:是什么 为什么 怎么用阅读目录mmap基础概念mmap内存映射原理mmap和常规文件操作的区别mmap优点总结mmap相关函数mmap使用细节回到顶部mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样
2017-11-22 20:55:03 508
转载 从内核文件系统看文件读写过程
从内核文件系统看文件读写过程阅读目录系统调用虚拟文件系统I/O 缓冲区Page CacheAddress Space文件读写基本流程回到顶部系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式
2017-11-22 20:54:10 449
转载 C语言的那些小秘密之volatile
volatile的重要性对于搞嵌入式的程序员来说是不言而喻的,对于volatile的了解程度常常被不少公司在招聘嵌入式编程人员面试的时候作为衡量一个应聘者是否合格的参考标准之一,为什么volatile如此的重要呢?这是因为嵌入式的编程人员要经常同中断、底层硬件等打交道,而这些都用到volatile,所以说嵌入式程序员必须要掌握好volatile的使用。其实就象读者所熟悉的const一样,v
2017-11-22 10:57:21 329
转载 关于C语言中的形参列表空着与加void的区别
关于C语言中的形参列表空着与加void的区别来一段代码大家看看,不,两段吧!int func(){ printf(“hello world\n”);}int func(void){ printf(“hello world\n”);}请问这两段代码一不一样呀?不一样.......再仔细看看,嗯嗯,就是不一样,因为一个有void
2017-11-22 10:40:54 1509 1
转载 内存优化总结:ptmalloc、tcmalloc和jemalloc
概述需求系统的物理内存是有限的,而对内存的需求是变化的, 程序的动态性越强,内存管理就越重要,选择合适的内存管理算法会带来明显的性能提升。比如nginx, 它在每个连接accept后会malloc一块内存,作为整个连接生命周期内的内存池。 当HTTP请求到达的时候,又会malloc一块当前请求阶段的内存池, 因此对malloc的分配速度有一定的依赖关系。(而apache
2017-11-14 15:54:25 1105
转载 Ubuntu服务器命令行安装Matlab
Ubuntu服务器命令行安装Matlab说起来在Linux上装各种神奇的工具包,真是让大家都挺抓狂的一件事。系统环境,依赖关系,冲突,命令行,sudo权限等等,哪一环节有问题都是很大的麻烦。apt-get固然方便,然而很多工具并没有包括,就算有也一定不是最新的,所以很多东西还是要下载到本地自行配置的,比如——Matlab。首先声明参考链接在此。Ubuntu 系统 14.04 s
2017-07-25 16:25:49 5313
转载 c++教程
课程模块第一阶段(Linux C开发)课程目标:能使用并管理linux系统,熟悉linux开发环境。熟练掌握C语言语法。掌握Linux下C开发方法。实训主题实训内容Linux最佳入门Linux基本操作、Linux基本命令、bash基础、Linux文件系统、Linux管理命令、
2017-02-26 08:53:12 3558
原创 机器学习算法思想梳理
前言:找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国
2015-10-29 11:01:40 767
转载 HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入
2015-10-20 15:44:43 413
转载 一致性哈希算法 - consistent hashing
1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;hash(object)%N一切都运行正常,再考虑如下的两种情况;1 一个 cache 服务器 m down 掉了(
2015-10-16 10:53:49 617
原创 C++ STL学习笔记十二 hash_map映照容器
/* * ************************************************************************************ * hash_map映照容器的基础说明: ***************************************************************************
2015-10-12 20:18:23 412
原创 C++ STL学习笔记十一 hash_set哈希集合容器
/* * ************************************************************************************ * hash_set哈希集合容器的基础说明: **************************************************************************
2015-10-12 20:17:50 861
原创 C++ STL学习笔记十 multimap多重映照容器
/* * ******************************************** * multimap多重映照容器的基础说明: ******************************************** * * multimap多重映照容器:容器的数据结构采用红黑树进行管理 * multimap的所有元素都是pair:第一元素为键值(k
2015-10-12 20:17:17 356
原创 C++ STL学习笔记九 map映照容器
/* * ******************************************** * map映照容器的基础说明: ******************************************** * * map映照容器:容器的数据结构采用红黑树进行管理,插入的元素键值不允许重复 * map的所有元素都是pair:第一元素为键值(key),不
2015-10-12 20:16:15 376
原创 C++ STL学习笔记八 multiset多重集合容器
/* * ******************************************** * multiset多重集合容器的基础说明: ******************************************** * * multiset多重集合容器使用RB-Tree的平衡二叉检索树的数据结构。 * 允许将重复键值的元素插入到multiset中
2015-10-12 20:14:30 439
原创 C++ STL学习笔记七 set容器
/* * ******************************************** * set集合容器的基础说明: ******************************************** * * set集合容器使用RB-Tree的平衡二叉检索树的数据结构,不允许插入重复键值 * 每个子树根节点的键值大于左子树所有节点的键值,而小于右
2015-10-12 20:13:01 509
原创 C++ STL学习笔记六 bit_vector位向量容器
/* * ******************************************** * bit_vector位向量容器的基础说明: ******************************************** * * 具有vector容器一样的成员函数,常用于硬件端口的控制。 * 区别于vector,bit_vector更节省内存空间,一个元素只占用一个bit *
2015-10-12 20:12:19 974
原创 C++ STL学习笔记五 slist单向链表容器
/* * ******************************************** * slist单向链表容器的基础说明: ******************************************** * * slist是SGI C++STL自设的一个容器,要安装配置stlport才可以使用 * * Front Insertion
2015-10-12 20:11:28 459
原创 C++ STL学习笔记四 list双向链表容器
/* * ******************************************** * list双向链表容器的基础说明: ******************************************** * * list双向链表容器采用双向链表的数据结构来存储元素数据,可以高效查找、插入、删除容器元素 * * Reversibe Cont
2015-10-12 20:09:31 370
原创 C++ STL学习笔记三 deque双端队列容器
* * ******************************************** * deque双端队列容器的基础说明: ******************************************** * * * 可进行随机访问,在**头部和尾端**插入、删除元素,时间复杂度为O(1) * Random Access Container
2015-10-12 20:08:02 341
原创 C++ STL学习笔记二 vector向量容器
* * ******************************************** * vector容器的基础说明: ******************************************** * * 可进行随机访问,并且实现了在容器的尾端插入新元素 * Random Access Container 和 Back Insertion
2015-10-12 20:06:53 290
原创 C++ STL学习笔记一
数据结构与算法是编程的核心,STL中包含各种数据结构和优秀的算法,确实值得深入学习,本文中虽然着重使用,但希望有心的朋友能多看看相关数据结构的实现,对于C++语言确实会有较大帮助。 STL库有多个版本,我采用的是SGI版本,编译安装方法请参考如下链接:http://blog.csdn.net/hong201/archive/2009/07/06/4322975.aspx
2015-10-12 20:06:13 393
转载 分布式基础学习_分布式计算系统(Map/Reduce)
分布式计算(Map/Reduce)分布式式计算,同样是一个宽泛的概念,在这里,它狭义的指代,按Google Map/Reduce框架所设计的分布式框架。在Hadoop中,分布式文件系统,很大程度上,是为各种分布式计算需求所服务的。我们说分布式文件系统就是加了分布式的文件系统,类似的定义推广到分布式计算上,我们可以将其视为增加了分布式支持的计算函数。从计算的角度上看,Map/Reduce
2015-10-07 10:42:35 2051
转载 分布式基础学习_分布式文件系统
分布式基础学习所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS、Map/Reduce、BigTable为框架核心的分布式存储和计算系统。通常如我一样初学的人,会以Google这几份经典的论文作为开端的。它们勾勒出了分布式存储和计算的一个基本蓝图,已可窥见其几分风韵,但终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺少了点感性。幸好我们还有Open Source
2015-10-07 10:37:21 3227
转载 BigTable
Bigtable为Google设计的一个分布式结构化数据存储系统,用来处理Google的海量数据。Google内包括Web索引、Google地球等项目都在使用Bigtable存储数据。尽管这些应用需求差异很大,但是Bigtable还是提供了一个灵活的、高性能的解决方案。-------------------------------------------------------------
2015-09-11 20:14:16 2512
转载 对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法
对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法 ——康华前言
2015-09-11 15:14:41 593
转载 面试备用
------------------------------------------- 公司面试回忆 ---------------------------------------------------- (面试很大不确定性,这些仅是自己的相关面试经验,不会涉及到具体面试题目的表述,公司考查的都是常见问题,这里不涉及对具体问题的探讨,只会说个大概谨供参考 ~ ) 一、腾讯互娱,后台开发工
2015-08-04 00:14:08 610 1
转载 磁盘 IO 性能 调优 多线程
1. 完全随机写还是跳跃,5倍的性能差距!全随机写无疑是最慢的写入方式,在logic dump测试中很惊讶的发现,将200M的内存数据随 机的写入到100G的磁盘数据里面,竟然要2个小时之多。原因就是虽然只有200M的数据,但实际上却是200万次随机写,根据测试,在2850机器上, 这样完全的随机写,r/s 大约在150~350之间,在180机器上,r/s难以达到250,这样计算,难怪需要
2015-08-03 23:39:32 9297
转载 使用 Socket 通信实现 FTP 客户端程序
FTP 客户端如 FlashFXP,File Zilla 被广泛应用,原理上都是用底层的 Socket 来实现。FTP 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通道。前者用于客户端向服务器发送命令,如登录,删除某个文件,后者用于接收数据,例如下载或上传文件等。本文详细阐述如何调用系统接口发送 FTP 命令实现文件上传下载等 FTP 客户端功能,让读者对 F
2015-08-03 23:25:43 559
原创 多线程知识
多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常出现在面试中的第一轮面试(我参加2011年腾讯研究院实习生招聘时就被问到了几个概念性题目)。然后是一些选择题,这些一般在笔试时出现,虽然不是太难,但如果在选择题上花费大多时间无疑会对后面的编程题造成影响,因此必须迅速的解决掉。最后是综合题即难一些的问答题或是编程题。这种题目当然是最
2015-07-24 21:19:02 1037
原创 Spring 框架的设计理念与设计模式分析
http://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/
2015-07-18 23:29:29 402
转载 qemu-kvm中断分析
硬件中断发生(qemu模拟设备)1.硬件产生中断的接口void qemu_set_irq(qemu_irq irq, int level);2.中断过程void qemu_set_irq(qemu_irq irq, int level){ if (!irq) return; irq->handler(irq->opaque, irq
2015-07-17 11:43:06 2796
转载 cloudstack中的user,account,domain和project解释
原文地址:https://cwiki.apache.org/confluence/display/CLOUDSTACK/Accounts%2C+Domains%2C+and+Projects+oh+my%21Accounts, Domains, and Projects oh my!Added by Clayton Weise, la
2015-07-09 14:39:52 636
转载 SQL索引一步到位
SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面
2015-07-07 22:37:08 487
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人