- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 浅析基于glibc的malloc
最近看了几个malloc和free的问题,总结一下。malloc和free由谁提供?一般来讲,它们是C Standard Library提供的而不是由操作系统的内核实现。例如微软的是msvcrt,Linux下是glibc。当然也有第三方库函数,比如jemalloc、tcmalloc。所以每个malloc和free的实现都有所不同,而且这些实现和内核之间是保留有一定自由度的。比如每次mall
2015-03-31 16:58:55 3601 1
转载 C/C++中的内存对齐
一、什么是内存对齐、为什么需要内存对齐?现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。字,双字,和四字在自然边界上不需要在内存中对齐。(对字,双字,和四字来说,自然边界分别是偶数地址,
2015-03-25 13:20:29 627
转载 浅析UNIX中的select和epoll
本文转自:知乎2013-10-27更新:由于此文陆陆续续收到赞同,而且其中有些地方并不完全正确,特在本文最后予以订正我不了解楼主的层次,我必须从很多基础的概念开始构建这个答案,并且可能引申到很多别的问题。首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们
2015-03-25 12:53:17 1457
原创 Redis中的内存管理:关于zmalloc
Redis是一种使用C语言编写的NoSQL数据库,特点是高性能,高灵活性。但由于C语言没有自带GC,所以Redis在实际使用过程中,内存的分配和释放的合理性和高效性就非常重要。为了达到这个目的,Redis的实现中封装了C里的malloc,calloc,realloc和free函数来对自己的内存进行管理。这些实现都在zmalloc.h和zmalloc.c中。程序中维护一个use_memory,表示已
2015-03-24 20:37:01 3456 2
原创 阿里巴巴菜鸟网络二面
下午五点多打电话过来二面,首先还是自我介绍,然后面试官问了课题,讲了大概十多分钟,根据一面的经验,我判断他肯定是没听懂,但他还是问了你这个算法怎么优化之类的。然后他问我对操作系统文件懂多少,这个确实懂的不多啊,他就改问进程和线程之类的,互斥啊同步啊mutex加锁CPU调度啊等等,说了一大堆。然后又问C++怎么对内存进行管理,我说C++没有垃圾回收,需要自己new了再delete,当然也可以用智能指
2015-03-20 20:40:23 6441
原创 LeetCode 76.Minimum Window Substring
题目:Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum windo
2015-03-19 21:43:40 500
原创 LeetCode 69.Sqrt(x)
题目:Implement int sqrt(int x).Compute and return the square root of x.分析与解答:更快的方法是牛顿法,这里采用二分法也是可以的。class Solution {public: int sqrt(int x) { if(x == 0){ return 0;
2015-03-17 21:17:29 529
原创 LeetCode 64.Minimum Path Sum
题目:Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or
2015-03-17 21:12:34 431
原创 LeetCode 63.Unique Paths II
题目:Follow up for "Unique Paths":Now consider if some obstacles are added to the grids. How many unique paths would there be?An obstacle and empty space is marked as 1 and 0 respectively
2015-03-17 19:58:34 424
原创 LeetCode 62.Unique Paths
题目:A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to r
2015-03-17 19:57:44 396
原创 LeetCode 31.Next Permutation
题目:Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest
2015-03-17 15:14:38 388
原创 LeetCode 56.Merge Intervals
题目:Given a collection of intervals, merge all overlapping intervals.For example,Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18].分析与解答:先排序,然后遍历,在遍历的过程中合并。/** * Def
2015-03-16 15:13:24 647
原创 阿里巴巴菜鸟网络电话面试
其实在这之前我一直不知道菜鸟网络到底是个什么东西。。。只是知道应该算是阿里的子公司吧。不过既然有师兄的内推,抱着不去白不去的心态就投简历了。第二天(今天)就接到了面试电话。面试官听声音好年轻的感觉,像一个同学的声音。他先让自我介绍了一下,问本科和研究生学过哪些课程,然后介绍现在做的课题。因为和计算机不太相关,所以解释了半天他也听不懂,囧死。然后他问了一个很简单的题目。说因为菜鸟在做物流这一块,如果
2015-03-11 21:10:17 21630 4
原创 LeetCode 55.Jump Game
题目:Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.De
2015-03-11 18:39:13 433
转载 HTTP的长连接和短连接
本文转自:这里本文总结&分享网络编程中涉及的长连接、短连接概念。 关键字:Keep-Alive,并发连接数限制,TCP,HTTP一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个
2015-03-10 14:05:41 521
转载 TCP的长连接与短连接
本文转自:这里1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们
2015-03-10 10:24:08 339
原创 select poll 和 epoll简介
本文转自:这里select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负
2015-03-10 10:07:25 454
原创 LeetCode Maximum Subarray
题目:Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4],the contiguous subarray [4,−1,2,
2015-03-09 13:48:00 329
原创 LeetCode 52.N-Queens II
题目:Follow up for N-Queens problem.Now, instead outputting board configurations, return the total number of distinct solutions.分析与解答:比上一题更简单了class Solution{ public: int
2015-03-08 21:39:50 323
转载 线程池简介
本文转自:这里什么是线程池?诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次
2015-03-08 21:14:07 349
转载 bitset简介
本文转自:http://blog.csdn.net/bill_ming/article/details/7180445 bitset的定义和初始化表3-6列出了bitset的构造函数。类似于vector,bitset类是一种类模板;而与vector不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset时,要明确bitset含有多少位,须在尖括
2015-03-08 20:33:57 559
原创 LeetCode 51.N-Queens
题目:The n-queens puzzle is the problem of placing n queens on ann×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzz
2015-03-08 20:02:11 350
转载 TCP建立连接为什么需要3次握手
本文转自:TCP连接建立过程中为什么需要“三次握手”传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的运输层(Transport layer)通信协议。是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的。互联网络与单个网络不同,因为互联网络的不同部分可能有着截然不同的拓扑、带宽、延迟、分组大小和其他参数
2015-03-06 13:58:06 937
转载 taglist的使用方法
本节所用命令的帮助入口::help helptags:help taglist.txt 使用下面的命令生成帮助标签:helptags ~/.vim/doc下面介绍常用的taglist配置选项,你可以根据自己的习惯进行配置: - Tlist_Ctags_Cmd选项用于指定你的Exuberant ctags程序的位置,如果它没在你PATH变量所定义的路径中,需要使用
2015-03-05 17:16:14 1030
转载 哈希表总结
博客Markdown编辑器上线啦 那些年我们追过的Wrox精品红皮计算机图书 PMBOK第五版精讲视频教程 火星人敏捷开发1001问哈希表总结分类: 结构与算法 2013-07-01 00:32 6360人阅读 评论(0)收藏 举报转载自http://blog.csdn.net/chenhuajie123/article/det
2015-03-05 15:00:33 783
原创 ubuntu 14.04下用root登陆图形界面
修改 /etc/lightdm/lightdm.conf如下:[SeatDefaults]autologin-user=rootgreeter-session=unity-greeteruser-session=ubuntugreeter-show-manual-login=trueallow-guest=false
2015-03-04 14:09:27 4762
转载 Vim 一键编译、连接、运行 C/C++ 单文件(Windows 与 Linux通用)
本代码是对vim下一键保存/编译/链接/运行的配置,放在vimrc文件内即可"------------------------------------------------------------------------------" "---------------------------------------------------------------------------
2015-03-02 15:27:06 6593
Java解惑 中文PDF版
2011-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人