Quantcast
Channel: Harries Blog™ » ECS
Browsing latest articles
Browse All 167 View Live

拥抱Java 8并行流吧,速度飞起!

前言 在 Java7 之前,如果想要并行处理一个集合,我们需要以下几步:  手动分成几部分   为每部分创建线程  在适当的时候合并。并且还需要关注多个线程之间共享变量的修改问题。 而 Java8 为我们提供了并行流,可以一键开启并行模式。 […]

View Article



JVM之逃逸分析

什么是逃逸分析 在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序的哪些地方可以访问到指针。它涉及到指针分析和形状分析。 当一个变量(或对象)在子程序中被分配时,一个指向变量的指针可能逃逸到其它执行线程中,或是返回到调用者子程序。如果使用尾递归优化(通常在函 […]

View Article

OkHttp 官方中文文档

[本文翻译来自 官方OkHttp Wiki](https://github.com/square/okhttp/wiki) 一、Calls HTTP客户端的工作是接受你的 request ,并产生它的 response 。这个在理论上是简单的,但在实践中确是很棘手。 1.1 请求 […]

View Article

深入探究JVM之对象创建及分配策略

@ 目录 前言 Java是面向对象的语言,所谓“万事万物皆对象”就是Java是基于对象来设计程序的,没有对象程序就无法运行(8大基本类型除外),那么对象是如何创建的?在内存中又是怎么分配的呢? 正文 一、对象的创建方式 在Java中我们有几种方式可以创建一个新的对象呢?总共有以下 […]

View Article

深挖view绘制流程(二)

Choreographer的中文翻译是编舞者、舞蹈编导的意思,为什么起这个名字呢?因为view的刷新和舞蹈一样是需要按着节拍来的,Choreographer就是根据VSync信号这个节拍来安排view的刷新动作。 它使用ThreadLocal单例模式,每个线程都有自己的Chore […]

View Article


mybatis sqlsession与sqlsquery、transaction、connection

sqlsession和connection 一个sqlsession一般对应一个connection,并且mybatis默认每次获取session都会开启一个事务,且不自动提交事务。如果更新操作完成后不手动commit,则在连接断开时会将更新操作回滚,一个sqlSession(一 […]

View Article

一次年轻代GC长暂停问题的解决与思考,再学一遍JVM吧

问题描述 公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的年轻代GC(流量并不大,并且LB下的每一台服务都会出现该情况) 在这次长暂停之后,每一次的年轻代GC暂停时间又都恢复在20-100ms以内 2s虽然看起来不长,但是对比规 […]

View Article

SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)

作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 导读 :上一篇文章 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》 我们介绍了从 IDE 插件内介绍了如何进行应用部署的方式,除此之外,目前 […]

View Article


JVM系列-读懂 GC 日志

Java 生态发展到今天,JVM (Java Virtual Machine)的价值可能已经超过了 Java 语言本身。 而 GC (垃圾回收)机制也是 JVM 的核心之一,在程序运行的过程中,GC 的过程会以日志的形式记录下来,看懂 GC 日志是研究 GC 机制的基础,GC日志 […]

View Article


记一次FullGC的排查经历–从FullGC日志到业务代码

问题的发生 简单介绍下我们服务的背景,我们的服务是一个使用类似dubbo的RPC框架以及若干Spring全家桶组合起来的微服务架构,大致结构可以参考下图。 Java服务使用的是CMS的垃圾回收器。 某天突然收到一台实例(即一个Java应用)产生FullGC日志的报警,如上图红色标 […]

View Article
Browsing latest articles
Browse All 167 View Live


Latest Images