SpringCloud快速入门

SpringCloud快速入门,不知道什么时候会写完

Java性能调优20——Java SE API 技巧

在某些 Java SE API 的实现中,存在一些会影响性能的怪异行为,本章将对其进行探讨。JDK 中有很多这样的实现细节,经常会其导致的性能问题。

Java性能调优19——数据库最佳实践(下)

JPA 的性能直接受底层 JDBC 驱动程序的影响,大多数影响 JDBC 驱动程序性能的因素都同样作用于 JPA。除此之外,JPA 的性能还受一些额外因素的影响。 通过调整实体类的字节码能够实现很多的 JPA 性能提升。在 Java EE 的环境中,这种性能的提升是无缝透明的。在 Java SE 的环境中,确保使用正确的字节码的处理方式是非常重要的。否则,JPA 应用程序的性能可能是无法预测的:期望推迟载入的字段可能很早就加载了,保存到数据库的数据可能是冗余的,期望保持在 JPA 缓存中的数据可能还需要从数据库中再次提取,等等。

Java性能调优18——数据库最佳实践(上)

本章主要探讨由 Java 驱动的数据库应用的性能(而不会讨论数据库优化相关内容,如果需要的话可能需要新开一个系列)。访问数据库的应用程序经常会受制于一些与 Java 不直接相关的性能问题,譬如使用的数据库有 I/O 瓶颈,或者由于关键索引缺失,导致 SQL 查询需要做全表扫描。要解决这些问题,不必调优 JVM,也不需要修改应用代码。处理数据库相关的性能问题需要我们(从其他的源头)了解如何为数据库应用编程及调优。

Java性能调优17——Java EE 性能调优(下)

不同系统间的数据交换可以使用 XML、JSON 和其他基于文本的格式。Java 进程间交换数据,通常就是发送序列化后的对象状态。尽管序列化在 Java 中随处可见,但 Java EE 中还有两点需要重点考虑。

Java性能调优16——Java EE 性能调优(上)

本章关注的是 Java EE(特别是 Java EE 6 和 7),涵盖了 JSP、servlet 和 EJB 3.0 会话 Bean——因为 EJB 3.0 实体 Bean(Java 持久化 API 实体,即 JPA)并不限定于 Java EE 技术(后面持久化优化章节将深入讨论),所以本章没有涵盖。

Java性能调优15——线程与同步的性能(下)

当空间非常珍贵时,可以调节线程所用的内存。每个线程都有一个原生栈,操作系统用它来保存该线程的调用栈信息(比如,main() 方法调用了 calculate() 方法,而 calculate() 方法又调用了 add() 方法,栈会把这些信息记录下来)。 不同的 JVM 版本,其线程栈的默认大小也有所差别,具体如下表所示。一般而言,如果在 32 位 JVM 上有 128 KB 的栈,在 64 位 JVM 上有 256 KB 的栈,很多应用实际就可以运行了。如果这个值设置得太小,潜在的缺点是,当某个线程的调用栈非常大时,会抛出 StackOverflowError。

Java性能调优14——线程与同步的性能(中)

在本节中,当用到“同步”(synchronization)这个术语时,它指的是这样的代码:这段代码在一个代码块内,它们对一组变量的访问看上去是串行的,每次只有一个线程能访问内存。具体而言,既包括用 synchronized 关键字保护的代码块,也包括用 java.util.concurrent.lock.Lock 实例保护的代码,再就是 java.util.concurrent 和 java.util.concurrent.atomic 包内的代码。

Java性能调优13——线程与同步的性能(上)

从刚问世起,Java 的部分魅力就来自其多线程。即便在多核和多 CPU 系统司空见惯之前,能够轻松编写多线程程序也是 Java 的一个标志性特征。 Java 性能方面的吸引力显而易见:如果有两个 CPU 可用,那么一个应用能够完成的工作量可能是原来的 2 倍,或者是以快 1 倍的时间完成相同的工作量。当然,这是在假设任务可以分解成离散的片段的前提之下的,因为 Java 不是能自动找出算法性部分并实现并行化的语言。幸运的是,今日所见之计算,往往是离散性的任务:服务器处理来自离散的客户端的同步请求,批处理作业在一系列数据上执行相同的操作,数学算法可以分节成多个组成部分,诸如此类。 本章探讨的主题是,如何挖掘出 Java 线程和同步设施的最大性能。

Java性能调优12——原生内存最佳实践

在Java应用中,堆消耗的内存是最多的。但是除堆之外,JVM还会分配并使用大量的原生内存。上一章从编程的角度探讨了高效管理堆的不同方式,不过,堆的配置以及堆如何与操作系统的原生内存交互,是影响应用程序整体性能的另一个重要因素。
Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×