`
chinese.darren
  • 浏览: 101154 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

性能监控/优化系列——Java应用Profiling

阅读更多

 1. 常见的内存泄露有adding entries to a Java Collection and never removing them are a common source of memory leaks。

2. 对于IO应用的调优, 为了减低CPU utilization, 一个常用的方法是buffer 输入和输出数据,减少交互次数。
3. 任何一次网络IO的调用最终会导致一个OS的系统调用,会消耗system CPU utilization,因此可以尽量选择NIO的方式
4. Java NIO nonblocking data structures allow for the ability to read or write as much data as possible in a single call to a network I/O (read or write) operation。
5. 在涉及到同步代码时注意: 1. 尽量减少同步代码path的长度; 2. 减少同步数据集合的大小, 像ConcurrentHashMap就是通过分段(segment)来缩小同步集合的范围实现高效同步操作;3. 也要尽量避免在同步块中设置不可控的依赖。
6.Atomic and concurrent data structures并不是万能的,它依赖于CAS操作,在高并发情况下会产生大的性能问题,因此首先要考虑不是选择何种原子数据结构,而是要尽量遵循上面提到的规则。
7. a volatile field’s value must be kept in sync across all application threads and CPU caches。为了保持多个CPU中的volatile数据一致,必然涉及到同步操作。如果在多CPU环境下,频繁更新volatile值会出现性能问题。
8. StringBuffer/StringBuiler当空间不足时会resize它的容量大小,这会产生一些性能问题。Eliminating these char[] allocations from resizing improves the performance of this program by saving the CPU instructions needed to perform the new char[] allocation, copying the characters from the old char[] into the new char[]and the CPU instructions required to garbage collect the old discarded char[]。请在构造它们的实例时显示指定大小。
9. ArrayList, Vector, HashMap, and ConcurrentHashMap同样也是基于数组作为底层结构,因此都有上面提到的resize问题。基于链表的数据结构不会有此性能问题。
分享到:
评论

相关推荐

    万台集群性能优化方法——MaxCompute性能优化实践.pdf

    在面临海量数据处理的挑战时,MaxCompute通过一系列性能优化策略来提升处理效率和降低成本。首先,MaxCompute支持大数据计算的典型场景,包括批处理、交互式计算和迭代计算。对于关键基线作业,优化性能和效率是核心...

    Java性能优化实战视频全集

    ### Java性能优化实战知识点概述 ...通过以上对Java性能优化实战视频全集的内容总结,我们可以看到该系列涵盖了从理论基础到实践案例的全面内容,对于希望深入了解Java性能优化的开发者来说是非常有价值的资源。

    java程序性能优化

    Java程序性能优化是Java开发中的重要环节,它旨在提高应用程序的运行效率,减少资源消耗,提升用户体验。在Java世界中,性能优化涵盖了多个层面,包括代码优化、内存管理、线程调度、数据库交互以及JVM参数调整等。...

    Java 系统运行时性能和可用性监控

    Java系统运行时性能和可用性监控是确保应用程序高效稳定运行的关键。这个话题主要涉及如何深入监控Java应用程序的性能,以获取系统内部状态的详细信息,从而揭示可能影响环境稳定性和性能的因素。监控不仅可以帮助...

    Java企业应用-性能优化原则, 方法与策略.pdf

    正确设置堆大小、新生代和老年代的比例、并发模式等参数,能够显著改善应用性能。而GC调优的目标是减少“停止世界”的时间,提高应用的响应速度。JIT编译器则负责将热点代码编译为机器码,以提升执行效率。 6. 应用...

    java服务程序性能测试总结

    【Java服务程序性能测试总结】 在软件开发过程中,性能测试是一项至关重要...同时,性能测试并非一次性的任务,而是一个持续改进的过程,通过迭代优化,可以逐步提高Java服务程序的性能和稳定性,满足更高的业务需求。

    java性能监视和管理官方指南

    通过综合应用这些方法,开发者可以实现对Java应用的全面性能监控和管理,及时发现和解决性能瓶颈和问题,从而提升应用性能。 需要强调的是,在实际操作中,对于性能调优和管理,需要结合具体的应用场景和业务需求来...

    嵌入式linux应用程序调试方法

    嵌入式 Linux 应用程序调试方法是一份详细的调试指南,涵盖了嵌入式 Linux 的 NFS 开发环境的建立、GDB 调试应用程序、内存工具、C/C++ 代码覆盖、性能 profiling 工具等方面的知识点。下面将对标题、描述、标签和...

    基于Web的Java应用性能监测系统设计与实现.zip

    基于Web的Java应用性能监测系统设计与实现是解决这一问题的关键技术,它旨在通过实时监控、分析和优化Java Web应用程序的运行状态,确保系统的稳定性和高效性。下面将详细探讨这个主题。 首先,我们需要理解Java ...

    atlassian-profiling-1.1.jar.zip

    "atlassian-profiling-1.1.jar"很可能就是Atlassian的性能分析工具的实现,其中封装了用于检测和分析Java应用程序性能的类库和资源。 Atlassian Profiling工具是Atlassian为了帮助开发者优化其产品的性能而设计的。...

    CID_2021_在混合模式下构建基于硬件的性能监控基础设施1

    在构建高性能监控基础设施时,硬件性能计数器(PMU,...通过这些方法和技术,我们可以构建一个强大而灵活的性能监控基础设施,不仅能够及时发现并解决问题,还能在云计算环境中实现持续的性能优化和资源管理。

    提高java代码性能各种技巧

    Java 代码性能优化技巧总结 Java 代码性能优化是每个 Java 开发者都需要掌握的重要技能。以下是对 Java 代码性能优化的各种技巧的总结: 字符串池的实现 在 Java 中,字符串池(String Intern Pool)是通过使用...

    通过日志监控并收集Java应用程序性能数据

    针对JVM的CPU使用及内存占用的性能分析,已经有各种剖析(Profiling)工具可供使用。但是如果想要得具体的调用栈,这些工具往往会给应用程序服务器增加大量额外压力。Perf4j则是通过对自定义监控范围进行日志记录,再...

    atlassian-profiling-1.3.jar.zip

    "atlassian-profiling-1.3.jar"就是这样一个包含Atlassian Profiling库的JAR文件,它可能封装了各种用于性能监控和分析的类、接口和资源。 Atlassian Profiling库是一个专为Atlassian产品设计的性能分析工具。它...

    Python_开发者优先的错误跟踪和性能监控.zip

    总之,错误跟踪和性能监控是优化Python应用的关键环节。开发者需要熟悉各种工具和技术,以便在开发过程中快速定位和解决问题,同时保持应用的高效运行。通过Sentry这样的错误追踪系统,以及各种性能分析工具,可以...

    YourKit Java Profiler v9.5.0.

    【标题】"YourKit Java Profiler v9.5.0." 是一款专业的Java性能分析工具,专注于帮助开发者和系统管理员优化Java应用程序的性能。这款工具提供了深入的内存和CPU使用情况分析,使得用户能够识别并解决性能瓶颈,...

    mysql优化(1)show命令 慢查询日志 explain profiling

    MySQL是世界上最受欢迎的关系型数据库管理系统之...理解并熟练运用这些工具,能有效提升数据库的运行效率,优化应用程序性能。在实际工作中,应结合实际情况,定期进行性能检查和调优,确保MySQL数据库高效稳定地运行。

Global site tag (gtag.js) - Google Analytics