勇往直前的专栏

写给以后的自己

从Java视角理解CPU上下文切换(Context Switch)

在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Swi...

2017-01-23 09:12:12

阅读数 172

评论数 0

Java专家系列:CPU Cache与高性能编程

认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访问速度却没有质的突破,为了弥补访问内存的速度慢,充分发挥CPU的计算资源,提高CPU整体吞吐量,在CPU与内存之间引入了一级Cache。随着热点数据体积越来越大,一级Cache L1已经不满足发展的要求,引入了...

2017-01-16 12:17:37

阅读数 305

评论数 0

7个示例科普CPU CACHE

  CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫,浩瀚繁星,阅之如临深渊,味同嚼蜡,三言两语难以入门。正好网上有人推荐了微软大牛Igor Ostrovsky一篇博文《漫游处理器缓存效应》,文章不仅仅用7个最简单的源码示例就将C...

2017-01-16 12:16:08

阅读数 408

评论数 0

给老婆普及计算机知识

我们知道计算机的计算数据需要从磁盘调度到内存,然后再调度到L2 Cache,再到L1 Cache,最后进CPU寄存器进行计算。 给老婆在电脑城买本本的时候向电脑推销人员问到这些参数,老婆听不懂,让我给她解释,解释完后,老婆说,“原来电脑内部这么麻烦,怪不得电脑总是那么慢,直接操作内存不就快啦”。...

2017-01-16 11:01:45

阅读数 186

评论数 0

Java Streams,第 2 部分: 使用流执行聚合

“累加器反模式” 第 1 部分中的第 1 个例子使用 Streams 执行了一次简单的汇总,如清单 1 所示。 清单 1. 使用 Streams 声明性地计算聚合值 int totalSalesFromNY = txns.stream() .filter(t -...

2017-01-06 09:36:26

阅读数 239

评论数 0

Java Streams,第 1 部分: java.util.stream 库简介

   Java SE 8 中主要的新语言特性是拉姆达表达式。可以将拉姆达表达式想作一种匿名方法;像方法一样,拉姆达 表达式具有带类型的参数、主体和返回类型。但真正的亮点不是拉姆达表达式本身,而是它们所实现的功能。拉姆达表 达式使得将行为表达为数据变得很容易,从而使开发具有更强表达能力、更强大的...

2017-01-06 08:57:06

阅读数 2205

评论数 0

linux的top命令参数详解

简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的...

2017-01-04 14:02:30

阅读数 236

评论数 0

Java线上应用故障排查之一:高CPU占用

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。 (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen) 以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。 根据top命...

2017-01-04 13:51:40

阅读数 383

评论数 0

提示
确定要删除当前文章?
取消 删除