`
chinese.darren
  • 浏览: 99566 次
  • 性别: 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世界中,性能优化涵盖了多个层面,包括代码优化、内存管理、线程调度、数据库交互以及JVM参数调整等。...

    嵌入式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为了帮助开发者优化其产品的性能而设计的。...

    提高java代码性能各种技巧

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

    atlassian-profiling-1.3.jar.zip

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

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

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

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

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

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

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

    YourKit Java Profiler v9.5.0.

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

    【ASP.NET编程知识】ASP.NET比较常用的26个性能优化技巧.docx

    可以根据应用程序的需求进行监控的优化,例如,使用性能监控工具、日志监控工具等。 24. 使用异地存储 异地存储可以减少服务器的负载,提高应用程序的性能。例如,使用 Azure Blob Storage、Amazon S3 等异地存储...

    Python-profiling一个交互式Python性能分析工具

    Python-profilng是一个强大的交互式Python性能分析工具,它允许开发者深入理解代码的运行时性能,从而找到程序的瓶颈并优化代码。在Python开发过程中,调试工具是必不可少的,特别是对于那些性能敏感的应用,理解...

    Jprofile 性能优化

    JProfiler是Java开发者手中的利器,通过它,你可以对应用进行全方位的性能监控和诊断。熟练使用JProfiler,可以显著提高你的工作效率,有效避免和解决性能问题。通过不断的实践和学习,开发者可以更好地理解Java应用...

    JAVA进程占用高内存缘由分析与优化方法_.docx

    例如,可以使用 VisualVM、JProfiler 等 profiling 工具来监控 Java 进程的内存占用情况,并根据实际情况进行优化。 Java 进程的高内存占用是一个复杂的问题,需要从多方面入手进行优化。可以通过调整 JVM 的参数、...

    Java性能分析20211022.rar

    在Java开发过程中,性能分析是优化应用程序的关键环节。"Java Top CPU和内存溢出分析"这一主题涵盖了两个核心概念:CPU使用率过高问题以及内存溢出(Out of Memory,OOM)错误。这两个问题都可能导致系统运行缓慢,...

    jdk20-flight-recorder-api-programmers-guide.pdf

    Java 平台标准版 Flight Recorder API ...Flight Recorder API 是一个强大且功能全面的分析工具,能够帮助开发者深入了解 Java 应用程序的内部工作机制,identify 和解决性能瓶颈,优化 Java 应用程序的性能和可靠性。

    高性能的Linux集群监控之道.docx

    高性能监控定义为以亚秒级频率收集大量数据的能力,这对大型集群尤其重要,因为低效的监控软件可能会阻碍协调和资源共享。解决这个问题需要高效的算法、并行传输、高效的传输协议和数据格式,以及减少冗余。压缩...

    Java Profiling Tool-开源

    Java Profiling Tool 开源项目旨在为开发者提供一个利用 Java Virtual Machine Profiler Interface ...开源性质使其具有高度可扩展性和社区支持,对于任何想要提升 Java 应用性能的开发者而言,都是一份宝贵的资源。

Global site tag (gtag.js) - Google Analytics