关闭

为什么我们需要STM(Software Transactional Memory)

原文:http://morepypy.blogspot.com/2011/08/we-need-software-transactional-memory.html 这是pypy开发者写的一篇blog,里面提到了Python,Java等多线程实现的情况,还有一个很有意思的东东:STM(Software Transactional Memory)。 简单记录下一些心得和想法(很可能有不对的地方:...
阅读(4967) 评论(1)

[置顶] 详细解析boost中bind的实现

写在前面的话 在C++11之后,std::bind是C++标准库的一个组件了。一开始想弄个C++11的实现来研究下,发现里面用到了可变参数模板(代码变得非常神奇). http://llvm.org/svn/llvm-project/libcxx/trunk/include/functional 还是弄个原始点的boost的实现来研究下。 话说网上关于boost::bind的实现的文...
阅读(12408) 评论(19)

C++ 中cout<<endl的实现

话说像下面的语句,应该大家都明白这是通过重载operator cout<<123; cout 但是像 cout 是怎样实现的? 起初猜想endl是一个class或者struct,再通过一个friend函数来实现的。 但是翻下stl的实现,原来endl是一个函数! template inline basic_ostream& endl(basic_ostream& __os) {...
阅读(3749) 评论(0)

Kryo简介及代码阅读笔记

更新:2012-08-01 版本 2.16长时间运行可能会导致OOM,版本2.18有bug,不能正确序列化map和collection。 真是悲剧,所用的每一个版本都有bug。不过从代码来看,作者有时的确比较随便。。测试用例也少。。(比起msgpack少多了) ======================================== Kryo官方网站:https://code.go...
阅读(31326) 评论(1)

Redis中的双向链表的实现

不得不说,数据结构书上的代码都是不实际的。 C语言的代码写得比较少,因此多记录下有用的代码。 adlist.h: /* adlist.h - A generic doubly linked list implementation * * Copyright (c) 2006-2010, Salvatore Sanfilippo * All rights reserved. *...
阅读(1463) 评论(0)

测试Go语言的interface的效率

interface是Go语言中的一大特点,甚至说是灵魂也不为过。 interface应该会在Go程序中大量出现和使用,因为有必要了解和测试下它的效率。 测试思路: 使用vector包,测试原生的IntVector和用interface包装后的vector的效率。 Go1中去掉了vector包,不过当时我把vector的代码保留了一份, 在代码库里应该也能找到。我找到了一个版本的:...
阅读(2913) 评论(3)

测试多线程对多核cpu的分支预测的影响

前言: 现代的cpu都有流水线,分支预测功能,CPU的分支预测准确性可以达到98%以上,但是如果预测失败,则流水线失效,性能损失很严重。 CPU使用的分支预测技术可以参考: 处理器分支预测研究的历史和现状.pdf 同时多线程处理器上的动态分支预测器设计方案研究.pdf 正确地利用这些特性,可以写出高效的程序。 比如在写if,else语句时,应当把大概率事件放到if语句中...
阅读(3754) 评论(3)

vitess中rpc兼容http请求的技巧

vitess是google的一个mysql项目,用go和python实现。https://code.google.com/p/vitess/ vitess中用rpc方式来中转mysql的请求,其中rpc的实现很有意思,兼容了http请求。 兼容http请求有明显的好处: 1.可以用现成的监控工具来监控服务是否正常,不用另外写插件 2.可以方便地实现查询信息功能,不用另外再开发工具或者界面...
阅读(2295) 评论(0)

Mysql Java驱动代码阅读笔记及JDBC规范笔记

一前言: 以前刚开始用java连接mysql时,都是连猜带蒙的。比如: 一个Statement,Connection何时关闭? Connection能不能先于Statement关闭? ResultSet是怎样存放数据的?怎样才能高效操纵ResultSet? PrepareStatement到底是怎样回事? 连接池是怎样工作的? 二、从JDBC driver代码分析: 在...
阅读(3978) 评论(2)
    个人资料
    • 访问:1712165次
    • 积分:11722
    • 等级:
    • 排名:第1445名
    • 原创:129篇
    • 转载:29篇
    • 译文:2篇
    • 评论:350条
    博客专栏
    文章分类
    最新评论