`
san_yun
  • 浏览: 2662689 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java容易导致性能瓶颈点

    博客分类:
  • java
 
阅读更多
1.不要使用string的split

不要使用string的split,可以看看内部的2B实现:

public String[] split(String regex, int limit) {
	return Pattern.compile(regex).split(this, limit);
}


每次会造成正则表达式的重新编译, 这是很消耗性能/内存的过程。 自己使用java的正则接口(如果表达式非常复杂, 我不建议使用java的正则接口,建议采用oro库)。 讨论帖子:http://www.iteye.com/topic/626801?page=2

2.使用spring的BeanWrapperImpl做bean组装请提前做好类型转换

spring BeanWrapperImpl 实现的类型转换有性能问题,刚才我测试来一把
使用spring BeanWrapperImpl进行类型转换的耗时:
4.687(ms)
3.508(ms)
3.261(ms)
3.177(ms)
7.526(ms)
3.393(ms)

先自己做好类型转换再调用setPropertyValue()的耗时:
0.603(ms)
0.699(ms)
0.559(ms)
0.591(ms)
0.579(ms)
0.532(ms)

可以看宝宝webx3中AbstractValueParser.setProperties()的实现:
BeanWrapper bean = new BeanWrapperImpl(object);
requestContext.getPropertyEditorRegistrar().registerCustomEditors(bean);

for (String key : keySet()) {
String propertyName = StringUtil.toCamelCase(key);

if (bean.isWritableProperty(propertyName)) {
PropertyDescriptor pd = bean.getPropertyDescriptor(propertyName);
MethodParameter mp = BeanUtils.getWriteMethodParameter(pd);
Object value = getObjectOfType(key, pd.getPropertyType(), mp, null);

bean.setPropertyValue(propertyName, value);
} else {
getLogger().debug("No writable property \"{}\" found in type {}", propertyName,
object.getClass().getName());
}
}
分享到:
评论

相关推荐

    JAVA性能瓶颈和漏洞检测工具

    Java性能瓶颈可能导致系统响应变慢,用户体验下降,甚至可能导致服务器资源耗尽。而漏洞的存在则可能让系统面临被攻击的风险,因此,掌握有效的检测工具对于Java开发者来说是必备技能。本主题将深入探讨"JAVA性能...

    《Java程序性能优化》(葛一鸣)PDF版本下载.txt

    - **CPU使用率高**:程序执行时,某些部分可能过度消耗CPU资源,导致性能下降。 - **内存泄漏**:对象不再被引用但未被垃圾回收器回收,占用内存资源不释放,导致系统性能下降甚至崩溃。 - **I/O操作效率低下**:如...

    10个常见的影响Java EE性能的问题

    - 数据库是Java EE系统的核心,不恰当的SQL查询、缺乏索引、长时间运行的事务等都可能导致性能瓶颈。需要定期进行SQL调优,合理规划数据库容量,确保数据库事务处理效率。 6. **线程管理不当** - 不合理的线程池...

    Java程序性能优化 让你的Java程序更快、更稳定附本书示例代码(清晰版)

    数据库交互是许多Java应用的性能瓶颈。优化SQL查询,使用预编译的PreparedStatement,批量操作,以及合理设计数据模型,可以大幅提高数据库访问速度。 此外,书中的示例代码可能涵盖了JVM调优,包括调整堆大小,...

    java性能分析文档

    Performance Analyzer是一款专门针对Java性能的工具,它提供了深入洞察应用程序性能的能力,帮助开发者识别并解决性能瓶颈。 在Java性能分析中,我们通常关注以下几个核心知识点: 1. **JVM内存模型**:Java虚拟机...

    java服务程序性能测试总结

    在测试过程中,我们应持续关注性能指标,如CPU使用率、内存占用、磁盘I/O、网络带宽等,寻找性能瓶颈,然后针对性地进行优化。例如,优化数据库查询、调整线程池配置、使用缓存技术、压缩数据传输等。同时,性能测试...

    使用JAVA内存数据库h2database性能优化

    例如,对于ATM监控,可以实时检测并记录各种异常交易,如单笔金额上限、交易金额累计上限、卡交易笔数累计上限等,而不会因为频繁的数据库操作而导致性能下降或数据丢失。 总之,h2database作为Java内存数据库,...

    java虚拟机性能监控

    本文将基于给定文件中的信息,深入探讨Java虚拟机性能监控的相关知识点。 #### 二、Java虚拟机性能监控的重要性 对于任何基于Java的应用程序来说,性能监控都是一个不可或缺的过程。随着系统负载的增加和技术的...

    Java程序性能优化 让你的Java程序更快、更稳定pdf文档视频资源

    2. **代码优化**:编写高效代码,避免冗余计算,合理使用循环和条件判断,以及优化字符串操作等常见性能瓶颈。 3. **并发与多线程**:掌握线程池的使用,理解synchronized、volatile、Lock等并发控制机制,以及如何...

    Java性能调优大全

    它能展示CPU使用率、内存占用、线程状态、类加载情况等信息,并支持JMX插件,帮助开发者定位性能瓶颈。通过VisualVM,我们可以进行堆内存分析、线程快照、方法追踪等功能,进行深入的性能诊断。 2. **JVM性能调优**...

    大话JAVA性能优化

    - 冗余计算:程序在执行过程中重复进行相同的计算,未能有效利用已经计算的结果,导致性能下降。 - 同步机制的不当使用:过度同步可能会造成线程之间的竞争,降低并发性能。 - 不合理的线程使用:如线程过多导致上...

    java性能优化集锦

    13. **优化异常处理**:异常处理不应成为性能瓶颈,避免在循环中抛异常。 14. **避免在循环中调用方法**:方法调用有一定开销,尤其是虚拟机外部的方法。 15. **使用本地方法**:对于CPU密集型操作,如位运算,使用...

    Java程序性能优化 让你的Java程序更快、更稳定.zip

    2. 正确使用synchronized:过多的同步可能导致性能瓶颈,应尽量减少同步块的范围,或者使用锁分离、读写锁等高级并发技术。 3. 避免死锁:确保线程间不会陷入死锁状态,避免程序的不稳定性。 五、数据库优化 1. ...

    提高java代码性能各种技巧

    Java 代码性能优化技巧总结 ...* 使用 profiling 工具来定位性能瓶颈。 * 使用 JVM 的参数来调整堆大小和垃圾收集器的行为。 Java 代码性能优化需要结合实际情况选择合适的优化技巧,充分发挥 Java 语言的性能潜力。

    java性能的优化-如何提高java运行效率

    7. 频繁的同步操作:过度使用synchronized关键字可能导致性能瓶颈。 【优化步骤】 1. 分析性能瓶颈:使用工具如Jprobe、Optimizit、Vtune等识别性能问题。 2. 代码优化:修改或重构瓶颈代码,提升执行效率。 3. ...

    java性能优化教程

    再者,方法调用也是性能瓶颈之一。过度使用递归可能导致栈溢出,应尽量使用循环代替。另外,尽量使方法为final,以便JVM进行方法内联,提高执行效率。 线程同步和并发处理是Java性能优化的重要部分。使用并发容器如...

    JAVA编码习惯和几款JAVA性能分析工具

    3. **易用性**:工具应该直观,便于理解和使用,以便快速定位性能瓶颈。 常见的Java性能分析工具有JProfiler、VisualVM、YourKit Java Profiler等。这些工具提供了深入的性能指标,如CPU使用率、内存分配、线程状态...

    java性能优化

    在Java程序中常见的性能瓶颈包括: - I/O操作过多,如数据库查询、网络通信等。 - 频繁的对象创建和销毁,导致垃圾收集压力增大。 - 数据结构选择不当,影响查找和访问效率。 - 并发控制不当,可能导致线程竞争和上...

Global site tag (gtag.js) - Google Analytics