关闭

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

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

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

一前言: 以前刚开始用java连接mysql时,都是连猜带蒙的。比如: 一个Statement,Connection何时关闭? Connection能不能先于Statement关闭? ResultSet是怎样存放数据的?怎样才能高效操纵ResultSet? PrepareStatement到底是怎样回事? 连接池是怎样工作的? 二、从JDBC driver代码分析: 在...
阅读(3978) 评论(2)

为什么Java中的HashMap<K, V>的get函数是get(Object key),而不是get(K key)?

帮别人的代码改bug,发现有一大堆bug是由get或者remove传递进去的参数类型不匹配而造成的。 比如: Map m = new HashMap(); m.put(new Short((short) 2), "2222"); System.out.println(m.get(2)); 上面的代码输出是null。 一般人很难发现传递进去的int和Short类型不匹配,而...
阅读(6380) 评论(4)

测试Java的synchronize和ReentrantLock在单线程下的效率

ReentrantLock 在多线程情况下要远胜synchronize,这点没有疑问。 最近要写个程序,有个变量是有多数情况下是一个线程读写,有少数情况下是多个线程并发读写。所以要测试下ReentrantLock 在单线程下和synchronize的效率对比。 在测试的过程中发现一个有意思的现象。 测试代码见后面。 测试代码1结果: noLockTime: 0:00:00.004 no...
阅读(2742) 评论(0)

Java中的几个HashMap/ConcurrentHashMap实现分析

一、HashMap,即java.util.HashMap 标准链地址法实现。这个不用多解析,下图十分明了。(图片来自网络) 二、Collections.synchronizedMap() 函数返回的线程安全的HashMap 这个的实现比较简单。 代码中有: private final Map m; // Backing Map final Object...
阅读(8315) 评论(5)

Java中long类型容易出现的bug

static long defaultSendSpeed = 1024 * 1024 * 1024 * 1024; 这段代码,实际上 defaultSendSpeed是0! 在Eclipse里也没有提示信息。应该在后面加上“L"。 static long defaultSendSpeed = 1024 * 1024 * 1024 * 1024L; 遇到好几次了,记之。 在看了《J...
阅读(1398) 评论(1)

git 错误 fatal: Not a valid object name: 'master'.

想新建立一个分支时出现这错误。后来发现,要先commit一次才会真正建立master分支,此时就可以新建立分支了。。...
阅读(22534) 评论(2)

Windows下Qt 重新编译库文件

首先要设置好环境变量,因为重新编译要调用cl.exe 和nmake.exe。最简单的设置方法是运行,D:/Microsoft Visual Studio 9.0/Common7/Tools/vsvars32.bat 再运行,D:/Qt/4.6.3/configure.exe 。按照提示一步步选择就行了。也可以看下一些选项。据说 -static 参数可以编译静态链接库。(未测试,因为下面运行nmake一次时间很久!!我用了好几个小时……) <br /...
阅读(2247) 评论(0)

关于MAP文件的使用

 关于MAP文件的使用 - j2mefans 收藏导读: 在看《深入理解计算机系统》的时候总会看到MAP文件,一直不懂,今天看到一片相关的文章,收录下来,大家一起看看吧。毕竟有些时候我们的IDE提示的信息不够明白,使用MAP文件是一个调试的好帮手。仅通过崩溃地址找出源代码的出错行作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃!<br /...
阅读(1279) 评论(0)

代码备份

写得很烂,自己看看就好了…… typedef int debug_int [50]; debug_int* p; void print(int a[], int length) { for (int i = 0; i...
阅读(594) 评论(0)

解决单文档滚动条程序中显示图像闪烁问题

1、class CPictureProcessView : public CScrollView如果原来是继承自CView,则把程序中所有的CView替换成CScrollView。注意,一定要重载 virtual   void   OnInitialUpdate();   否则可能出错。 2、添加内存DC,内存位图成员。 CDC m_MemDC; //内存DCCBitmap m_MemBitmap; //内存位图...
阅读(1806) 评论(0)

在文档中嵌入对话框,在style 中记得要选child

。。。。。调试了好久。。好久。。终于发现。。。。悲剧。。。。。...
阅读(797) 评论(0)
    个人资料
    • 访问:1712164次
    • 积分:11722
    • 等级:
    • 排名:第1445名
    • 原创:129篇
    • 转载:29篇
    • 译文:2篇
    • 评论:350条
    博客专栏
    文章分类
    最新评论