• Java 性能优化(一)


    Java 性能调优(一)

    1、衡量程序性能的标准

    (1) 程序响应速度;

    (2) 内存占有情况;

    2、程序调优措施

    (1) 设计调优

        设计调优处于所有调优手段 的上层,需要在软件开发之前进行。在软件开发之初,软件架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方案。由于软件设计和架构对设计整体质量有决定性影响,所以,设计调优对系统性能的影响也是最大的。

        进行设计优化时,设计人员必须熟悉常用的软件设计方法、设计模式、基本性能组件和常用优化思想,并将其有机的集成在软件系统中。

    (2) 代码调优

        代码优化设计诸多编码技巧,需要开发人员熟悉相关语言的API,并在合适的场景中正确使用相关API或类库。同时,对算法、数据结构的灵活使用,也是代码优化的重要内容。

    (3) JVM调优

        Java软件总是运行在JVM虚拟机上,因此JVM的各项参数将会直接影响Java程序的性能。如:JVM的堆大小、垃圾回收策略等。

        要进行JVM层面的调优,需要开发人员对JVM的运行原理和基本内容结构有一定的了解。如:堆内存的结构、GC的种类等。然后,依据程序的特点,设置合理的JVM启动参数。

    (4) 数据库调优

        对数据库的调优可以分为3个部分:

    • 在应用层对SQL语句进行优化;
    • 对数据库进行优化;
    • 对数据库软件进行优化;

        在应用层优化数据访问,涉及大量的编程技巧。如:当使用JDBC进行查询时,对于大量的拥有相同结构的SQL查询,可以使用PreparedStatement代替Statement,以提高数据库的查询效率;在select语句中,显示指定要查询的列名,避免使用星“*”。

        在对数据库进行优化时,主要目的是建立一个具有良好表结构的数据库。如:为了提高多表级联查询效率,可以合理地使用冗余字段;对于大表,可以使用行的水平切割或者类似Oracle分区表的技术;为了提高数据库查询效率,可以建立有效且合理的索引。

        对于数据库软件的优化,根据不同的数据库,如Oracle、MySQL或者SQL Server都拥有不同的方式。以Oracle为例,设置合理大小的共享池、缓存缓冲区或者PGA,对Oracle的运行性能都有很大的影响。

    (5) 操作系统调优

        操作系统的性能对应用系统也有较大的影响。不同类型的操作系统,调优的手段和参数会有所不同。如:在主流UNIX系统中,共享内存段、信号量、共享内容最大值、共享内存最小值等都是可以进行优化的系统资源。此外,如最大文件句柄数、虚拟内存大小、磁盘的块大小等参数都可能对软件的性能产生影响。

    3、系统优化注意事项

        软件性能优化,如果是通过优化代码的方式,就有可能会引入新的bug,致使之前的完整功能性测试无效。而且,优化后的代码与优化前的代码相比,可能会比较晦涩难懂,从一定程度上影响了系统的可维护性。因此,软件优化需要在软件功能、正确性和可维护性间取得平衡,而不应该过分地追求软件性能。优化后的性能提升幅度可能也不足以让开发者如此费尽心机。因此,在进行软件优化时,需要慎重的评估。

        性能调优必须有明确的目标,不要为了调优而调优。如果当前程序并没有明显的性能问题,盲目地进行调整,其风险可能远远大于收益。

     

  • 相关阅读:
    python的WeakKeyDictionary类和weakref模块的其他函数
    用python做的windows和linx文件夹同步。解决自动同步、加快传输大量小文件的速度、更丰富的文件上传过滤设置。
    超牛 猴子补丁,修改python内置的print
    python编程范式培训文档,主要是结合4种代码和,对oop和面向过程编程区别和oop转化公式培训。
    oop的方式来操纵时间
    使用python对文件夹里面所有代码行数进行统计。
    DeBug Python代码全靠print函数?换用这个一天2K+Star的工具吧,改进版
    一个有界任务队列的python thradpoolexcutor, 直接捕获错误日志
    python flask多个app应用组合
    数据库笔试面试题库(Oracle、MySQL等)
  • 原文地址:https://www.cnblogs.com/sandyflower/p/6679102.html
Copyright © 2020-2023  润新知