既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
long curtime = System.nanoTime()
long usedTime = totalTime - lastUserTime
long totalPassedTime = curtime - lastSysTime
lastSysTime = curtime
lastUserTime = totalTime
def d = avg ? (((double) usedTime) / totalPassedTime / getAvailableProcessors()) * 100 : (((double) usedTime) / totalPassedTime) * 100
return d > 100 ? 8.88 : d
}
这里我用了一个参数,用来区分是否返回平均使用率还是返回总使用率之和。因为在docker环境中com.funtester.utils.OSUtil#getAvailableProcessors返回值着实让我很迷惑,至今还没懂其中奥妙。
下面分享获取系统负载的方法:
/**
- 获取系统一分钟内的平均load
- @return
*/
static def getLoad() {
osMxBean.getSystemLoadAverage() / getAvailableProcessors()
}
同样的问题也存在这个方法中,但目前使用比较少,就没有做修改。
### 获取GC信息
static List<GarbageCollectorMXBean> gcMxBeans = ManagementFactory.getGarbageCollectorMXBeans();
/**
* 获取GC信息{@link com.funtester.utils.OSUtil.GCInfo}
* @return
*/
static def getGCinfo() {
def infos = []
for (GarbageCollectorMXBean gcMxBean : gcMxBeans) {
infos << new GCInfo(gcMxBean)
}
infos
}
/**
* GC信息类
*/
static class GCInfo extends AbstractBean {
String name
int count
int time
GCInfo(String name, int count, int time) {
this.name = name
this.count = count
this.time = time
}
GCInfo(GarbageCollectorMXBean gcMxBean) {
this.name = gcMxBean.getName()
this.count = gcMxBean.getCollectionCount()
this.time = gcMxBean.getCollectionTime()
}
}
这里只能算是个输出,很少用GC信息作为独立的依据。
### 其他
获取内存信息:
/**
- 获取堆内存信息
- @return
*/
static def heapMemInfo() {
memoryMXBean.getHeapMemoryUsage()
}
/**
- 获取非堆内存信息
- @return
*/
static def noHeapMemInfo() {
memoryMXBean.getNonHeapMemoryUsage()
}
### 使用场景
![img](https://img-blog.csdnimg.cn/img_convert/5ea628752bf68a1dfe247b2cabdf7424.png)
![img](https://img-blog.csdnimg.cn/img_convert/ff6771c1d498762c61affe0f88d44b5b.png)
![img](https://img-blog.csdnimg.cn/img_convert/36584bb245f37bc7b8a58fe155db440e.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**