cpu时间

[转帖]是否值得付费?Oracle,Open JDK等四大JVM性能全面对比

吃可爱长大的小学妹 提交于 2020-01-17 07:52:29
是否值得付费?Oracle,Open JDK等四大JVM性能全面对比 https://blog.csdn.net/weixin_45583158/article/details/100143505 不通的jdk的性能是不一样的. 导读:随着Java 11 的发布,Oracle JDK成为收费软件,很多公司转向寻找Oracle JDK的替代品。有很多人都会怀疑,Oracle JDK和其他JDK之间有没有很大的性能差异,本文作者通过多方面测试,给出这个问题的答案,适合Java程序员研读。 市面上可供选择的JVM发行版还是有不少的。选择合适的JVM需要考虑不同的因素。性能是其中一个重要的因素。靠谱的性能研究是很困难的。在本文中,我创建了一个测试,在不同的JVM上执行对比测试。测试程序包括Spring Boot REST应用,使用Prometheus监控JVM并使用Grafana可视化。下图是示意图。除了soapui外,所有东西都在docker容器中运行。 隔离干扰因素 如何确定没有别的因素干扰你的设施。我们可以通过尝试隔离分配给流程的资源来实现。 例如,分配专用CPU和固定数量的内存。 我还进行了几项测试,这些测试将资源限制放在负载均衡器,监控软件和可视化软件上(为这些资源分配不同的CPU和内存)。 为进程分配特定资源(使用docker-compose v2 cpuset和内存参数

并发编程理论

拈花ヽ惹草 提交于 2020-01-17 05:55:34
并发与并行 --并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。简言之,是指系统具有处理多个任务的能力。 并发 当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。简言之,是指系统具有同时处理多个任务的能力。 多个进程切换执行,由于CPU处理速度较快,往往看上去在同时执行. 原理:CPU从硬件层面将内存分割开,使得进程在自己独立的内存中运行,CPU每次只处理一个进程,当这个进程进入阻塞状态(多为IO)时,或者是执行时间 超过设定时间时,CPU切换至别的就绪状态的程序去执行,等到该程序结束IO(阻塞状态)进入就绪状态时,cpu才会切换回来继续执行该进程 并行 多个进程同时运行,要求多核才能实现 阻塞与非租塞 阻塞 就是等待状态,当进程进入IO状态或者时,cpu需要等待其结果是,那么就是进入阻塞状态,当服务器连接一个客户端,接收不到客户端数据时,也是阻塞状态 非阻塞 不需要等待的状态就是非阻塞状态 详情参考: 并发并行同步异步阻塞非阻塞详解 来源: https://www.cnblogs.com/luowenConnor/p

计算机存储器

≯℡__Kan透↙ 提交于 2020-01-17 05:14:29
一、什么是计算机存储器? 计算机存储器(英语:Computer memory)是一种利用半导体、磁性介质等技术制成的存储数据的电子设备。其电子电路中的数据以二进制方式存储,不同存储器产品中基本单元的名称也不一样。 二、计算机存储器的分类 1、按在计算机系统中的作用分: 计算机存储器可分为内部存储器(简称内存或主存)、CPU缓存和外部存储器(辅助存储器)。 其中内存是CPU能直接寻址的存储空间,由半导体器件制成。计算机内存的特点是访问速率快,容量小,价格高。我们平常使用的程序,如Windows操作系统、打字软件、游戏软件等,一般都是安装在硬盘等外存上的,但必须把它们调入内存中运行,才能真正使用其功能,我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的,数据产生后不断地由内存向外存进行刷写。就好比在一个书房里,存放书籍的书架和书柜相当于电脑的外存,而我们工作的办公桌就是内存。通常我们把要永久保存的、大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上,当然内存的好坏会直接影响电脑的运行速度。 外部存储器是指处理内存和CPU以外的存储器。这种存储器的最大特点就是断电后仍能保存数据。除此之外还具有访问速率慢,容量大,价格相对较低的特点。常见的外存设备有:硬盘、软盘、光盘、U盘等。 CPU高速缓存(英语:CPU Cache,简称缓存

嵌入式面试题

让人想犯罪 __ 提交于 2020-01-17 03:31:27
参考链接: 看你会多少 记一次嵌入式底层面试 Linux面试基础题3道 一、请问uboot启动过程都做了些什么? 1、cpu刚开始初始化的时候,还未设置栈,所以先使用汇编代码,构建异常项链表,然后设置cpu为svc(特权)模式,同时关闭FIQ和IRQ(防止突发中断程序跑飞了) 注:在跳转到内核之前,要满足CPU出在SVC模式下。 2、对cp15协处理器进行设置,这里主要是关闭MMU和cache 3、进入到板级初始化阶段,这里会进行时钟、内存、串口的初始化。最后还要关闭看门狗。 4、接下来就是设置栈,为c语言准备运行环境,调用board_init_f,填充gd结构体。 5、对代码重定位,搬运到内存中去,搬运之后,跳转到内存中去执行board_init_r,这里就可以开启cache了,当然也可以不开启。然后初始化其他设备。比如flash、网卡、emmc等。初始化完之后,在执行main_loop 二、为什么uboot要关掉cache? uboot要关掉cache 根据cache的定位可以看出来,它是用来加快cpu从内存中取出指令的速度,但我们都知道,在设备上电之初,我们的内存初始化比较慢一拍,当cpu初始化了,但内存还没准备好之后,就对内存进行数据读,那么势必会造成了指令取址异常,系统就会挂了。所以,在u-boot的上电之初,就得关闭掉数据cache

【转】性能优化 = 改改代码?

て烟熏妆下的殇ゞ 提交于 2020-01-16 09:41:29
原文地址:https://mp.weixin.qq.com/s/jf9_8KADzNtkDyoxE8-HBg 上了一定规模的系统,特别是To C的系统,性能优化或多或少都会被逼着去做一下。否则,系统便无法支撑业务的发展,技术成了拖后腿,不是引领业务了。 一旦线上出现了性能问题,就会很棘手。因为它和业务功能上的Bug不同,后者的分析和解决思路更清晰,只要日志记录到位,沿着一条已知的业务逻辑线,很容易就能找到问题根源。 而性能问题就会复杂的多,导致的因素有很多,甚至会是多种因素共同作用下的结果。比如,代码质量低下、业务发展太快、架构设计不合理等等。 而且一般情况下,性能问题处理起来比较耗时,涉及到的分析链路可能会很长,特别是自己小组之外的上下游系统,很多人不愿意干,或者说有心无力。最多采用一些临时性的补救手段,碰碰运气。比如,扩容增加机器、重启大招、……。 有些临时性的补救措施,有时候不但不能解决问题,还会埋下新的隐患。 比如,从表象上看到某个程序因为给的资源不足导致产生性能问题。临时增加更多资源给它,可能从表面上看,问题是解决了。但是实则可能是因为程序内部对资源的使用上存在不合理的地方,增加资源只是延缓问题发作的时间,而且还可能会侵占其它程序的运行资源。 为了避免陷入如此的窘境,我们应当尽量提前进行性能优化,未雨绸缪。甚至最好是将它作为一个周期性的工作来进行。

sigar开发(java)

浪子不回头ぞ 提交于 2020-01-16 03:47:51
下载sigar,地址:https://yunpan.cn/cBEWbEfdAm98f (提取码:f765) 可以收集的信息 CPU信息:包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait) 文件系统信息:包括Filesystem、Size、Used、Avail、Use%、Type 事件信息:类似Service Control Manager 内存信息:物理内存和交换内存的总数、使用数、剩余数;RAM的大小 网络信息:包括网络接口信息和网络路由信息 进程信息:包括每个进程的内存、CPU占用数、状态、参数、句柄 IO信息:包括IO的状态,读写大小等 服务状态信息 系统信息:包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等 文件目录结构 hyperic-sigar-1.6.4压缩包中 bindings:使用例子 docs:文档 sigar-bin:开发文件(jar包,dll文件,so文件等) 1. 在自己的Java项目中引入sigar.jar 2. 同时将对应的dll文件或者so文件添加到系统目录。例如:windows下把sigar-x86-winnt.dll添加到c:\WINDOWS\system32或者jdk的bin目录 获取数据,代码如下: import java.net

Linux iostat命令详解

谁说我不能喝 提交于 2020-01-16 03:11:45
Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。在一个以前看到系统监控工具,总在想那些监控工具的代理,如何收集系统性能信息,io性能,cpu使用,带宽使用等信息,偶然发现,不同系统均提供有性能分析工具的,代理可通过这些命令获取系统性能信息,个人猜测,不知道具体是不是这样的。其中iostat可以给我们提供丰富的IO状态数据,下边就来看一下iostat如何使用,命令能够输出那些信息。 简述 Linux系统中通过iostat我们能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈。 命令安装 iostat是查看Linux系统io是否存在瓶颈顶好用的一个命令,但是由此而系统默认没有安装的,以centos系统为例,看看如何安装iostat命令。 [root@localhost ~]# iostat -bash: iostat: command not found [root@localhost ~]# yum install -y sysstat 命令使用 [root@localhost ~]# iostat --help Usage: iostat [ options ] [ <interval> [ <count> ] ] Options are: [ -c ] [ -d ] [ -N ] [ -n ] [ -h ]

softlockup/hardlockup原理详细介绍

眉间皱痕 提交于 2020-01-16 00:50:31
转载自 https://blog.csdn.net/hzj_001/article/details/100054659 主体涉及到了3个机制:kernel watchodog线程,高精度定时器(时钟中断),基于PMU硬件perf event的NMI(不可屏蔽中断)。 基本思想: 1.)(soft lockup):抢占被长时间关闭而导致其余进程无法调度 2.)(hard lockup):中断被长时间关闭而导致 softlockup基本原理: 1)SoftLockup 检测首先需要对每一个CPU core注册叫做watchdog的kernel线程。即[watchdog/0],[watchdog/1],[watchdog/2]… 2)同时,系统会有一个高精度的计时器hrtimer,该计时器能定期产生时钟中断,该中断对应的中断回调函数是watchdog_timer_fn();此中断回调函数主要做3件事: a.watchdog_interrupt_count函数更新hrtimer_interrupts变量(判断hardlockup会用) b.wake_up_process唤醒watchdog线程(更新时间戳) c.is_softlockup判断是否出现了soft_lockup soft lock detector会检查时间戳,如果超过soft lockup threshold一直未更新,说明

并发编程之多进程

微笑、不失礼 提交于 2020-01-15 18:22:03
一 什么是并发编程 并发指的是多个任务同时被执行即并发编程指的是编写代码令我的程序能够同时处理多个任务。 二 进程   进程即正在执行的一个程序。进程是对正在运行的程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。那么便要来介绍一下操作系统。 pid 和ppid   pid :系统会给每一个进程分配一个进程编号即ID # 在python中可以使用os模块来获取pid import os print(os.getpid())   ppid : 当一个进程a开启了另一个进程b时,a称为b的父进程,b称为a的子进程 在python中可以通过os模块来获取父进程的pid # 在python中可以使用os模块来获取ppid import os print("self",os.getpid()) # 当前进程自己的pid print("parent",os.getppid()) # 当前进程的父进程的pid 操作系统   精简的说的话,操作系统是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。 #操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核#(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为程序员写的应用程序提供#系统调用接口

并发编程——操作系统介绍(1)

有些话、适合烂在心里 提交于 2020-01-15 18:20:22
1.什么是操作系统 操作系统是一个协调、管理和控制计算机硬件资源和软件资源的控制程序 隐藏复杂的硬件接口,提供良好的抽象接口,应用软件直接使用操作系统提供的功能简介使用硬件 管理、调度进程,并且将多个进程对硬件的竞争变得有序 2.关键技术 批处理 多道技术 产生背景:针对单核,实现并发 空间上的复用:内存中同时有多道程序,物理层面需保证多个程序的内存是互相隔离的,如果不隔离,稳定性和安全性不能保证 时间上的复用:复用一个cpu的时间片,共享CPU的时间;遇到IO切,提升CPU的效率;一个程序运行时间过长也要切,降低了CPU效率,但是实现了并发。 分时操作系统 多个联机终端+多道技术 来源: https://www.cnblogs.com/GraceZ/p/8452008.html