上一页 1 2 3 4 5 6 ··· 31 下一页
摘要:负载均衡的几种常用方案总结下负载均衡的常用方案及适用场景;Round Robin 轮询调度以轮询的方式依次请求调度不同的服务器; 实现时,一般为服务器带上权重;这样有两个好处:针对服务器的性能差异可分配不同的负载; 当需要将某个结点剔除时,只需要将其权重设置为0即可; 优点:实现简单、高效;易水平... 阅读全文
posted @ 2015-11-27 13:57 大CC 阅读(5096) 评论(8) 推荐(3) 编辑
摘要:Redis哈希表的实现要点 哈希算法的选择 针对不同的key使用不同的hash算法,如对整型、字符串以及大小写敏感的字符串分别使用不同的hash算法; 整型的Hash算法使用的是Thomas Wang's 32 Bit / 64 Bit Mix Function ,这是一种基于位移运算的散列方法。基于移位的散列是使用Key值进行移位操作。通常是结合左移和右移。每个移位过程的结果进行累加,最后... 阅读全文
posted @ 2015-11-18 21:31 大CC 阅读(2961) 评论(0) 推荐(1) 编辑
摘要:短网址服务设计背景短网址服务,用来将输入的一个长网址转换为一个短网址(比如附录中的案例),当用户请求这个短网址时,服务查询出真实的url; 设计这么一个短网址服务,需要考虑哪些点?数据结构首先,需要考虑短网址应该如何存储,使用一个key-value结构就可以; key是生成的短网址,具有唯一性... 阅读全文
posted @ 2015-11-06 17:34 大CC 阅读(3131) 评论(2) 推荐(1) 编辑
摘要:多线程和多进程模型的选用 这里的线程指通过linux的pthread_create而产生的原生线程,线程资源很宝贵,能被操作系统的任务调度器看见的(不是python gevent、go gorouine里的概念); 我们讨论以下两种模型; 多进程单线程模型(以下简称为多进程); 单进程多线程模型(以下简称为多线程); 多进程模型 优点 编程相对容易;通常不需要考虑... 阅读全文
posted @ 2015-10-10 10:40 大CC 阅读(3921) 评论(0) 推荐(0) 编辑
摘要:异步和非阻塞今天看了篇知乎讨论,将异步和非阻塞讲的透彻;在这里整理出来;同步异步同步和异步关注的是 消息通信机制 同步,就是在发出一个 调用 时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。 换句话说,就是由调用者主动等待这个调用的结果。异步则相反,调用在发出之后,... 阅读全文
posted @ 2015-10-09 09:17 大CC 阅读(746) 评论(0) 推荐(0) 编辑
摘要:C++11带来的优雅语法 自动类型推导 auto auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以简化我们的编程工作; auto是在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不良影响; 另外,似乎auto也并不会影响编译速度,因为编译时本来也要右侧推导然后判断与左侧是否匹配。 auto a; // 错误,auto是... 阅读全文
posted @ 2015-09-11 14:10 大CC 阅读(17506) 评论(0) 推荐(8) 编辑
摘要:C++11在时空性能方面的改进 这篇我们聊聊C++11在时间和空间上的改进点; 主要包括以下方面: 新增的高效容器:array、forward_list以及unordered containers; 以及常量表达式、静态断言和move语义; 大小固定容器 array std::array是一个支持随机访问且大小(size)固定的容器,它是c++11中新增的容器。它有如下... 阅读全文
posted @ 2015-09-07 10:56 大CC 阅读(4927) 评论(2) 推荐(3) 编辑
摘要:C++11中对类(class)新增的特性 default/delete 控制默认函数 在我们没有显式定义类的复制构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数: 默认的赋值函数以内存复制的形式完成对象的复制。 这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下,比如我们不希望对象被复制, 在之前我们需要将复制构造函数和赋值操作... 阅读全文
posted @ 2015-09-02 11:06 大CC 阅读(5017) 评论(0) 推荐(1) 编辑
摘要:当优化扩展到多核时 "软件开发没有银弹,我们能做的就是选择和平衡;" 上一篇文章我们聊了在单线程下程序优化的5个方向(ref:《程序优化的5个方向》);当单核优化到极值后,就到了多任务的情况; 想起来很清晰,单个任务分解成多个任务,让多个cpu同时来工作,并行执行,效率自然就上去了; 但,未必就这么简单; 任务分解的粒度 首先,我们需要确定,我们的单个任务是否可以分解;比如... 阅读全文
posted @ 2015-08-13 09:33 大CC 阅读(829) 评论(1) 推荐(1) 编辑
摘要:程序优化的5个方向80/20法则:程序执行中,80%的时间消耗在20%的代码上。 优化前,我们首先得找到这20%的关键路径; 各种语言都有专门的工具来找到这20%的关键路径,比如C++经常用到的gprof;参考《C++的性能优化实践》在关键路径上对耗时的计算进行优化; 主要的优化方向为... 阅读全文
posted @ 2015-08-07 07:53 大CC 阅读(3025) 评论(5) 推荐(5) 编辑
上一页 1 2 3 4 5 6 ··· 31 下一页
木书架 大CC的博客