关闭

java 并发编程读书笔记

1.同步容器,同步容器包括Vector和HashTable,是早期jdk的一部分。另一部分是同步包装类,以Collections.synchronizedxxx的工厂方法创建。 2.同步容器虽然是线程安全的,但是对于复合操作,有时你可能需要加上额外的客户端加锁进行保护,即对于使用这些容器的客户端代码,如果存在复合操作,还是可能存在风险。 3.例如check-and-act操作、循环中的元素操作...
阅读(925) 评论(0)

SPI和API

先描述下API(Application Programming Interface )。在java中,我们使用java提供的很多类、类的方法、数据结构来编写我们的应用程序,最终完成我们需求的程序功能,这里的类、方法、数据结构即是jdk提供的api。api的意义,其实就是这些提供给你完成某项功能的类、接口或者方法。          而SPI(Service Provider Interface)...
阅读(7851) 评论(1)

《java performance》翻译 第七章jvm调优:堆内存设置

设置jvm堆内存     到目前为止,还没有为调优jvm的内存占用采取任何调优动作。下面这个步骤讲述了如何来确定一个应用应该使用的jvm内存大小。这个步骤的目标是帮助调优人员找出应用的常驻内存大小,因为应用的常驻内存大小为配置应用的堆内存提供了很好的参考作用。常驻内存大小是指应用在稳定运行状态需要使用的堆大小,另外一个角度来理解的话,可以认为是jvm在经历过一次fgc之后的内存占用大小。...
阅读(1554) 评论(0)

《java performance》翻译 第七章jvm调优:基础概念

现代jvm是一个能适应各种不同复杂应用的软件,大多数的应用在jvm的默认配置上能够运行得很好、满足需求,但还是会有一些应用在需要在默认配置上进行适当的jvm参数调优才能满足应用的性能需求。现代的jvm中有大量的参数可以设置进而改变jvm的行为,不幸得是,适合一个应用上的最佳配置未必在另一个应用上能够起作用。所以,知道怎么调优jvm参数就变得很重要。     方法论     调优的第一步...
阅读(1497) 评论(0)

JMS(java消息服务)学习笔记

JMS(java消息服务)是java平台关于面向消息中间件的api接口,用于在应用程序和分布式系统中发送消息,进行异步通信。JMS提供了一套类似JDBC的技术规范,服务的实现由具体的实现提供商提供。     使用JMS,可以解决诸多的体系结构性问题,比如异构系统集成通信,缓解系统瓶颈,提高系统的伸缩性(异步、非点对点的模式使得处理消息的应用可以水平扩展),增强系统用户体验,使得系统模块化和组件化...
阅读(10443) 评论(2)

屌丝程序员的2012

穿着从本命年留下来的红内裤,龙年马上就要平安过完了。首先要的是感激和感恩,这一年我顺利得完成了许多大事小事:正儿八经得要开始过日子的样子、身体还挺好、人也依然上进和乐观,我觉得这就挺够了,感谢家人、朋友和我自己。虽然还有很多不完美,但可以理解成那是给明年留的进步空间。         年初,订婚。这是件大事。这件事决定了我这辈子往后能有个多幸福的小家,回家能吃到多热的饭,周末休息的时候能做点啥,...
阅读(1057) 评论(0)

jar包冲突问题排查总结

在测试脚本编写和应用部署时,经常遇到的一个问题是:java.lang.NoSuchMethodError。这个问题产生的根本原因是运行时应用加载的jar包版本不是应用代码真正需要的版本。要解决这个问题,就要让应用加载真正“HasSuchMethod"的类所在的jar包。解决这个问题,我把它归纳为以下几步:验证加载内容、查找包含该类的jar包、查找应用适用的jar版本、查看出错应用加载的jar包位置...
阅读(17060) 评论(4)

contiperf施压机制初步探索总结

contiperf是一个轻量级性能测试框架,它让用户在基于junit4的接口测试用例上执行性能测试,官网链接如下:http://databene.org/contiperf.html。下面对ContiPerf的实现做一个概要的分析:     1.contiperf扩展自junit,所以可以使用junit的eclipse插件在eclipse中运行;     2.junit4以上,扩展junit通...
阅读(1770) 评论(0)

《java performance》读书笔记之java应用调优tips

首先 java performance把应用中代码引起的性能问题分为以下几类:          1.低效的算法、数据结构          2.锁竞争          3.低效的代码          然后文章分门别类得列举了一些java应用中典型的性能问题和调优tip,主要讲解了以下几类问题的原因分析和排查解决思路:          一.系统态cpu资源消耗过高...
阅读(1401) 评论(0)

apache和php环境搭建

一个项目需要用到php,要从零开始学习php了,在本地搭建了一下apache结合php的环境,记录一下,以备后用。            1.安装php。            2.找到php目录下的 php.ini-dist,重命名为php.ini。            3.修改php.ini.在php.ini中找到extension=php_gd2.dll所在行,去掉开头的":"。...
阅读(658) 评论(0)

《java performance》读书笔记之垃圾回收监控分析

当需要jvm调优时就预示着需要分析jvm监控的信息。当jvm版本变化、操作系统变化、应用升级等任何一个变化时,都需要进行jvm调优。                jvm监控包括了垃圾回收、JIT编译行为、类加载等区块。                性能监控可能是当发现了一个系统的性能瓶颈但又没有充足的信息和证据来指明瓶颈的根源所在时第一步要做的事情。                相反得...
阅读(1395) 评论(0)

cpu伪共享问题

CPU内部也会有自己的缓存,内部的缓存单位是行,叫做缓存行。在多核环境下会出现CPU之间的内存同步问题(比如一个核加载了一份缓存,另外一个核也要用到同一份数据),如果每个核每次需要时都往内存中存取,这会带来比较大的性能损耗,这个问题一般是通过MESI协议来解决的。           MESI协议中包含M、E、S、I四个状态,分别的意思是: M(修改, Modified): 本...
阅读(3163) 评论(3)

《java performance》读书笔记之JIT

这一部分的内容其实主要是看了毕玄大师的《分布式java应用基础与实践》得到的总结。如下。           编译是指从一些高级语言生成机器级别的指令的过程。传统的编译器一般是从C或者C++这样的源程序出发,把每个源代码文件编译成一个个对象文件,然后把这些文件连接到一个库或者可执行文件中,使得用户可以执行这些库或者可执行文件。因为编译并不是频繁的任务,所以编译时间在静态编译器上并不是大的约束。j...
阅读(1667) 评论(0)

【ASM系列2】字节码介绍

这一篇首先介绍下面这些类型的字节码指令:            装载和存储系列:从局部变量装载到操作数栈的xload系列指令、从常量池中装载数据到操作数栈的xconst和push系列、将操作数栈中的数据保存到局部变量的xstore系列指令。            字段访问系列:getfield、putfield、getstatic、putstatic等指令。            方...
阅读(1456) 评论(0)

【ASM系列1】visitor模式

最近一直在使用ASM做一些代码监控和AOP拦截的事情,接下来准备对做的这些事情做下记录,以备后用,还是那句话:好记性不入烂键盘。           存在这样的问题:在一个集合当中,存在着多种不同的类型,但是需求需要对这个集合当中的所有元素遍历之后进行类似逻辑的一个操作。退一步思考,如果集合中都是同类元素,这会很简单,只要在这类元素的对象上执行固定的操作就可以。而现在的情况是多种不同类型的对象,...
阅读(1470) 评论(0)
88条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:184682次
    • 积分:2738
    • 等级:
    • 排名:第14485名
    • 原创:65篇
    • 转载:23篇
    • 译文:0篇
    • 评论:29条
    链接style
    最新评论