- 浏览: 159168 次
- 性别:
- 来自: 上海
最新评论
-
qinyou1994:
请问 查询 附近的 商店 能返回 距离具体值吗?
使用morphia对基于mongodb应用开发 -
xiyueshenyan:
BeanDefinitionRegistry是个接口,图片错了 ...
BeanDefinition 解析和注册 -
秦时明月黑:
三年了,距今三年了,三年前已经有人熟读源码,膜拜,邀想2012 ...
ThreadPoolExecutor execute 方法分析 -
fengzhonghun102:
太专业了! 非常感谢!
ThreadPoolExecutor execute 方法分析 -
dj4307665:
...
AbstractExecutorService任务提交<一>
文章列表
转载 程序员技术练级攻略
- 博客分类:
- 转载
本文转载自陈皓(http://coolshell.cn/articles/author/haoel) 博客: http://coolshell.cn/articles/4990.html
月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把 ...
Jenkins JFR 插件主要是用来解析JRockit Flight Record (不了解JRockit 飞行日志可以google一下),并且以SVG图形展示CPU,MEM等情况。想进一步了解代码的可以戳这里:
https://github.com/WalseWu/jenkins-jfr。
言归正传,回到hudson plugin,关于hudson的介绍就戳这里: http://wiki.eclipse.org/The_Hudson_Book 。简述下:hudson的插件机制主要基于Stapler和Jelly实现,Stapler主要用于 ...
接上篇,有了JFR Report,我们可以通过JMRC分析,但是这样的话还是不够方便,所以想自己开发一个Jenkins插件来解析展示,本文先做个开发前的准备工作:
开发Hudson / Jenkins 插件首先一下准备工作:
1. JDK1.6 或更新版本
2. MAVEN 2
3. maven 库settings设置增加:
<pluginGroups>
<!-- pluginGroup
| Specifies a further group identifier to use for plugin lookup.
...
前阵子Jenkins上builds起伏很大,有些UnitPerfTes的耗时很大,一度使得WLS集群表现很糟糕,于是我希望为UnitPerfTest框架加上JRockit Flight Recording(JFR)模块,具体是这样的:
1)在每个节点开始跑 Task之前能启动该节点上的一个JFR;
2)当task跑完之后结束JFR;
3)从每一个节点产生的JFR report 传回到启动Task所在的JVM,也就是我们Jenkins Server上
JFR是JRockit Missing Controll的东西(目前新版的Hotspot JDK已经也支持 ...
JMeter的各组件以及如何扩展已完成,现在要利用JMeter对Weblogic Server 的一些应用/组件的性能测试。简单说就是利用JUnit 驱动,在单元测试中驱动JMeter,集成WLS完成一些底层的并发测试,最简单的一个场景:比如在某个单元测试性能评测中,我要测试 n 个并发,其中2%做写操作,98%做读操作。最终的结果都会在Hudson上汇总,看到JUnit Report和JMeter Report,不仅能反映出每个单元测试的功能是否正确,还能反映出并发性能。
WLS 有两种 Unit 测试,一种是Remote,一种是Local。Remote和Lo ...
完成JMeterEngine, ThreadGroup 和 JMeterThread的整合,外围的设施差不多搞定大半了,接下来是把具体的测试逻辑整合进来,既然是框架层面的,需要通用一点,方便客户端自己定义测试逻辑。不过在此之前,还需要研究下Sampler和Listeners,这样对JMeter的整个流程会有全局的把握。先看下图:
SampleListener和TestStateListener作为很重要的两个Listener贯穿了JMeter整个test的生命周期。
先看TestStateListener,两个方法名就能让我们猜到作用:
1) ...
到上一篇ThreadGroup为止,基本上在项目中可以完成对JMeterEngine / ThreadGroup 的整合,现在要来分析下JMeterThread,以便更好的集成到项目中。
一个 JMeterThread 好比一个vu(虚拟用户),他的创建和启动已经在ThreadGroup这一篇中完整的分析,我们是将JMeterThread委托给一个叫做DaemonizableNamedRunnable(这是因为我需要整合 weblogic workmanager 统一管理线程池)的实例来运行的, 附DaemonizableNamedRunnable代码
//remote ...
项目搞一段落,总算有时间回来继续。
上一篇写到JMeterEngine会驱动JMeter ThreadGroup启动Test Threads 执行测试,其本身也是一个Runnable,这里把测试驱动(JUnit或者其他类似main之类的)看作主线程(main thread)的话, JMeterEngine作为第一层子线程(First Child Thread),所以如果项目代码基于很多模块(比如基于OSGI),需要进行ClassLoader调整的话可以重写JMeterEngine的runTest方法,例如.:
@Override
...
JMeterEngine接口比较简单,总共7个方法,但是没javadoc,所以光看接口的话只能凭方法名猜测了。我们这里简要分析下:
1. configure(HashTree testPlan)
前面博文已经说过HashTree是JMeter跑测试依赖的数据结构,也提到过HashT ...
学 习了使用JMeterEngine简单的运行测试之后,不着急马上看内部的实现,先了解一下在启动JMeterEngine之前所做的一些初始化工作,这 个对于正确的代码启动JMeterEngine很有必要。下面是启动JMeterEngine之前的初始化流程简要描述:
...
习惯于JUnit做功能方面unit test,而对于有些Test需要有一定的压力来模拟一定并发的读和写,借助JMeter来实现这样的测试框架是很不错的一个选择,一来减少很多工作量 (只需少量的定制:比如实现自己的ThreadGroup来定制并发线程的创建和执行,实现自己的Sampler来定制测试目标类的实例化和运行),二来可以很方便使用Hudson进行持续集成, 这对于利用Hudson进行持续集成的项目是再方便不过了,每次build之后除了JUnit报告之外,还能看到jtl报告来监视的性能状况。如果要这样做,首先要研究一下JMeter代码。
咋看JMeter框架,貌似挺复杂的,其实不然 ...
Linux 之mount镜像文件
- 博客分类:
- Linux
本文转自:http://my.oschina.net/toyandong/blog/65002
使用mount挂载ubuntu虚拟机所在的img文件的时候,执行:
“sudo mount -o loop xxx.img /mnt/xxx”,
系统提示:
“mount: you must specify the filesystem type”
加上”-t ext3″后仍然报错:
mount
: wrong fs
type
, ...
环境迁移,永远不会那么顺利的,一些意想不到的错误时有出现,这些都需要有耐心去查看、google、慢慢摸索解决。由于linux supprt模块只能在特定的环境下运行和测试,那我前期的开发环境也变得复杂起来(要不写的代 ...
linux下装Oracle-XE记
- 博客分类:
- Linux
本来想偷懒一下,装个Oracle-xe精简版,节省点空间(压缩包不到300M),也省点时间,没想到木有控制好风险,付出的时间远远高出预计。安装rpm文件是从TaaS那里考过来的,自己的产品嘛,又有自己人背后支持,我就放心大胆的去装了,再加上之前在虚机上装过,信心满满,怎么说半个小时就搞定了吧。
一系列命令之后,控制台出现安装成功的输出信息,紧接着config下,sudo /etc/init.d/oracle-xe configure, 也是没有半点错误。唯一的不正常是,启动监听器和启动数据库的时间非常短,几乎秒杀,想想我的OEL不可能强劲到这种速度吧。果然,之后安装 ...
Linux开发环境小记
- 博客分类:
- Linux
发发牢骚,最近因为负责一个linux support的模块,在几台虚机之间切换感觉很不爽,果断把整个开发环境切换到Linux 下(Oracle Enterprise Linux 5),各种不爽的问题出现,记录两个:
一是eclipse切换workspace莫名其妙的错误:Workspace in use or cannot be created,choose a different one. 感觉一头雾水,不知道算是eclipse的bug还是linux的bug,本人没有深究,记录解决方法如下:
1. 删除原workspace下的.metadata目录
2. ...