自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 JVM调优-优化环境

每天分享知识,欢迎来白嫖!一、有一个50万PV的资料类网站(从磁盘提取文档到内存)原服务器32位,1.5G 的堆,用户反馈网站比较缓慢,因此公司决定升级,新的服务器为64位,16G 的堆内存,结果用户反馈卡顿十分严重,反而比以前效率更低了1. 为什么原网站慢? 很多用户浏览数据,很多数据load到内存,内存不足,频繁GC,STW长,响应时间变慢。2. 为什么会更卡顿? 内存越大,FGC时间越长 。3. 咋办? PS -> PN + CMS 或者 G1。PS+PO无论怎么设置,卡顿还是会

2021-08-10 14:39:04 98

原创 垃圾回收器的分类

​1、Mark/Sweep/Compact Collector——将这三个阶段作为三个独立的步骤执行2、Mark/Compact Collector——跳过清除阶段,直接将活动对象移动到堆的连续区域3、Copying Collector——在一次 GC 工作中执行所有三个阶段。它使用 from 和 to 空间,移 动所有活动对象,然后一次性更新所有引用。当 from 区域为空时,表示回收已完成。复制 回收器中所做的工作时间与活动对象的大小和数量成线性关系。...

2021-08-09 14:49:39 74

原创 GC 调优的观察

​ 大多数回收器的垃圾回收调优都很难做到一定正确,即使你理解了应用程序的特性。下 图显示了 HotSpot JVM 中 CMS 回收器的两组调优参数。虽然它们可能使用相似的参数,但 它们是非常不同的,甚至在某些领域是完全相反的。然而,应用程序的性能可以通过任意一 种设置进行优化,这取决于其特定的特性。对于大多数垃圾回收器来说,没有“一刀切”的 答案存在。开发人员和架构师必须仔细调优,并在每次应用程序、环境或预期的负载变化时 重新调优。错误地获取这些参数可能会在峰值负载时间导致意外的长时间暂停。然而...

2021-08-05 14:27:08 89

原创 垃圾回收器的种类

​垃圾回收器分为几种类型。对于每种类型,有些回收器又可以被分类为“mostly”(STW 的 GC)(部分 STW,部分和应用程序一起执行),也即部分并发 GC,比如 CMS 回收器。这意味着, 有时它并不是根据这样的类型来执行操作的,当某些情况发生时,它需要有一个后备机制, 比如 CMS 之后的 Serial GC 兜底(想象一下应用程序分配内存的速度大于垃圾回收速度会怎 样)。因此,部分并发的回收器可以与应用程序执行并发操作,并且只在偶尔需要时停止。 分类如下:1、Concurrent...

2021-08-04 11:46:50 163

原创 MySQL调优中的datetime 与 timestamp

​在数据库中,我们经常会存储日期类型的数据,mysql 中支持的日期类型有三 种,分别是 datetime、timestamp、date。那么该如何选择呢? Datetime 在进行存储的时候占用 8 个字节,与时区无关,数据库底层时区配 置,对 datetime 无效,是说它跟时区是没有关系的,同时可以精确到毫秒,可保 存的时间范围比较大。 Timestamp 在进行存储的时候占用 4 个字节,采用整型进行存储,精确到 秒,表示的时间范围是 1970 年 1 ...

2021-08-02 15:18:21 128

原创 SynchronousQueue

SynchronousQueue容量为0,就是这个东西它不是用来装内容的,SynchronousQueue是专门用来两个线程之间传内容的,给线程下达任务的,老师讲过一个容器叫Exchanger还有印象吗,本质上这个容器的概念是一样的。看下面代码,有一个线程起来等着take,里面没有值一定是take不到的,然后就等着。然后当put的时候能取出来,take到了之后能打印出来,最后打印这个容器的size一定是0,打印出aaa来这个没问题。那当把线程注释掉,在运行一下程序就会在这阻塞,永远等着。如果add方

2021-07-30 15:28:43 105

原创 JVM中GC常用参数

-Xmn -Xms -Xmx -Xss : 年轻代 最小堆 最大堆 栈空间-XX:+UseTLAB :使用TLAB,默认打开-XX:+PrintTLAB :打印TLAB的使用情况-XX:TLABSize :设置TLAB大小-XX:+DisableExplictGC :System.gc()不管用 ,FGC-XX:+PrintGC:打印GC信息-XX:+PrintGCDetails:GC详细信息-XX:+PrintHeapAtGC:GC打印堆栈情况-XX:+PrintGCTimeStamps:

2021-07-29 17:54:12 135

原创 CyclicBarrier工具使用

​来讲这个同步工具叫CyclicBarrier,意思是循环栅栏,这有一个栅栏,什么时候人满了就把栅栏推倒,哗啦哗啦的都放出去,出去之后扎栅栏又重新起来,再来人,满了,推倒之后又继续。 ​下面程序,两个参数,第二个参数不传也是可以的,就是满了之后不做任何事情。第一个参数是20,满了之后帮我调用第二个参数指定的动作,我们这个指定的动作就是一个Runnable对象,打印满人,发车。什么barrier.await()会被放倒,就是等够20个人了,后面也可以写你要做的操作 s。什么...

2021-07-28 15:49:55 57

原创 学大数据前需要掌握哪些Java基础知识?

大数据产业已进入发展的"快车道",急需大量优秀的大数据人才作为后盾。学大数据需要一门编程语言作为基础,而Java就是主流语言。学大数据之前需要掌握哪些Java基础知识呢?今天达妹就帮大家分析一下。首先,我们学习大数据,为什么要先掌握Java技术?Java是目前使用非常广泛的编程语言,它具有的众多特性,特别适合作为大数据应用的开发语言。Java不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语

2021-07-26 14:20:54 180

转载 人工智能人才需求不断增长原因何在?

数据科学和人工智能(AI)正在超越时代,并将其转变为最令人兴奋的领域。人工智能的爆发使得人工智能人才需求变大,对技术熟练的数据科学家的需求比以前增长得更快。据统计,人工智能领域的专家招聘在过去四年中增长了74%。数据科学被称为21世纪最“神奇”的工作。 但是你知道为什么对人工智能人才的需求如此之大吗?首先了解数据科学和人工智能在现实生活中的一些应用。虚拟助手也被定义为人工智能助手,一个理解语音命令并为用户执行任务的应用程序。人工智能驱动的虚拟助...

2021-07-23 15:34:00 322

转载 都2021年了,年薪50W真的难吗?

都2021年了,年薪50W真的难吗?据我了解,程序员想要突破年薪50W的薪资,其实并不难!而且这个群体还很庞大,稍一出溜,就被别人反超了!!!大厂中月薪4W+的招聘JD但是你得有两项硬技能...其中一项就是读源码...很多程序员想看Spring源码,但是不知道应当如何入手去看,对于程序员来说,只是配置一下配置文件而已但读源码过程中,多多少少会反应出很多问题!我开发过程中不用源码,为什么要看源码?看源码对我有帮助吗?这不就相当于读一下别人的代码吗?意义在哪?为什么大厂现在越来越侧重于源

2021-07-22 16:41:15 355

原创 小白到大牛的晋升

很多人说程序员是最容易实现财富自由的职业,也确实,比如字节 28 岁的程序员小伙不正是从普通开发一步步做起的吗?回归行业现状,当开发能力可以满足公司业务需求时,拿到超预期的 Offer 并不算难。最近我也一直在思考这个问题,提升 Java 核心能力最快、最有效,短期内升职加薪的进大厂、拿期权的方法,到底是什么? 首先,你需要跳出日常工作,接触更有深度、更前沿的顶级项目。一个简单的逻辑:大厂之所以能够给到高于行业水准的薪资,正是因为即使是普通开发人员,也要应对很多复杂的场景。...

2021-07-21 21:38:24 73

原创 分享一个线上店铺,有兴趣可以去看看

链接:https://detail.tmall.com/item.htm?spm=a212k0.12153887.0.0.4d7c687dNshakY&id=649196666270

2021-07-19 15:25:30 235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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