关于Java EE性能几点问题
1. Java EE 中间件环境规范不足
“没有规矩,不成方圆”。第二个比较普遍的原因是 Java EE 中间件或者基础架构不规范。在项目初始,新平台上面没有制定合理的规范,导致系统稳定性差。这会增加客户成本,所以花时间去制定合理的 Java EE 中间件环境规范是必须的。这项工作应与初始容量规划迭代相结合。
2. Java 虚拟机垃圾回收过度由于 JVM 的内存空间过度消耗(Java 堆、本机堆等)而抛出的异常。
垃圾收集问题并不一定会表现为一个 OOM 条件,过度的垃圾收集可以理解成是 JVM GC 线程在短时间里进行轻微或超量收集集合数据而导致的 JVM 暂停时间很长和性能下降。可能有以下几个原因:与 JVM 的负载量和应用程序内存占用量相比,Java 堆可能选择的太小。JVM GC 策略使用不合理。应用程序静态或动态内存占用量太大,不适合在 32 位 JVM 上使用。JVM OldGen 随着时间推移,泄漏越来越严重,而 GC 在几个小时或者几天后才发现。JVM PermGen 空间(只有 HotSpot VM)或本机堆随着时间推移会泄露是一个非常普遍的问题;OOM 的错误往往是观察一段时间后,应用程序进行动态调动。建议:观察和深入理解 JVM 垃圾回收。启动 GC,根据健康合理的评估来提供所有的数据。记住,GC 方面的相关问题不会在开发中或者功能测试时发现,它需要在多用户高负载的测试环境下发现。
3. 与外部系统集成过多或过少
导致 Java EE 性能差的第四个原因是高分布式系统,典型案例是电信 IT 环境。在这个环境中,一个中间件领域(例如,服务总线)很少会做所有的工作,而仅仅是把一些业务“委托”给其他部分,例如产品质量,客户资料和订单管理, 到其他 Java EE 中间件平台或遗留系统中,如支持各种不同的负载类型和通信协议的大型机。 这样的外部系统调用意味着客户端的 Java EE 应用程序触发创建或重用套接字链接从外部系统中读写数据。合肥网站建设公司根据业务流程的实施和实现可以配置成同步调用或异步调用。需要注意的是,响应时间会根据外部系统 的稳定状况进行改变,所以通过适当的使用超时来保护 Java EE 应用程序和中间件也是非常重要的。
4. 特定应用程序性能问题下面关注的是比较严重的 Java EE 应用程序问题。
关于特定应用程序性能问题,总结了以下几个点:
1.线程安全的代码问题
2.通信 API 缺少超时设置
3.JDBC 或者关系型 API 资源管理问题
4.缺乏适当的数据缓存
5.数据缓存过度过多的日志记录。
希望本文能够帮助您理解一些常见的性能问题和压力点,