Java|提高 Java 性能的技巧

Java|提高 Java 性能的技巧

文章图片


Java 编程语言已经存在了二十多年 。 由于 Java 使用 Java 虚拟机 (JVM) 和垃圾收集机制 , 因此与其他当代语言相比 , 它最初的性能较慢 。 然而 , 它的速度已经得到提高 , 部分原因是最近版本中的大量更新 。 JVM 的性能得到了相当大的优化 。

尽管 Java 和 JVM 的执行速度已经加快 , 但你可以利用某些关键策略来进一步提高用 Java 开发的应用程序的性能 。 这里深入探讨了 Java 代码的一些优化技巧
Java 优化:避免编写长方法
如果你编写长方法 , 则 Java 虚拟机将花费更多时间来执行 。 如果你的应用程序中的方法小而简洁 , 那么它们不会减慢你的应用程序的速度 。 这是因为保持方法简短可以最大限度地减少需要执行的处理量 , 并减少 CPU 周期 。 此外 , 如果一个方法很大 , 程序员可以在合适的逻辑点将其拆分为多个方法 , 以优化处理速度 。
(JIT) 编译器根据以前在解释器模式下的执行确定将方法编译为本机代码所需的优化 。 这可以提高性能和更高效的代码 。 当你的方法很广泛时 , 它不会被 JVM JIT 编译;这种方法也不太可能被内联 。 相反 , 如果你的方法很短 , 则它非常适合 JVM 内联和 JIT 编译 。
避免使用 BigDecimal 类
虽然 BigDecimal 类对特定场景很有帮助 , 但它可能会阻碍应用程序的性能 。 Java 开发人员执行的 BigDecimal 计算越多 , 他们的应用程序就会越慢 。 虽然 BigDecimal 类保证了十进制和浮点数的精确准确性 , 但如果你过于频繁地使用它 , 它将显着降低应用程序的性能 。 如果你不需要此类可以提供的精度 , 最好跳过使用 BigDecimal 并使用 long 或 double 数据类型 。
尽可能使用原始类型
你还可以在应用程序中使用原始类型来减少处理开销并提高性能 。 最好使用 int 而不是 Integer , 或者使用 double 而不是 Double 。 虽然原始类型存储在堆栈中 , 但类的实例(即对象)存储在垃圾收集堆中 。 使用原始类型允许你的 JVM 将对象存储在堆栈中而不是堆中 。 使用这种方法 , 你的应用程序的性能可以大大提高 , 因为堆栈比堆更快 , 而且资源开销要少得多 。
避免在 Java 代码中使用正则表达式
正则表达式 (Regex) 功能强大、成本低廉且易于使用 。 但是 , 如果必须在计算密集型代码中使用正则表达式 , 建议缓存模式引用而不是每次都编译它 。 在java培训中 , 有更加系统全面的课程 , 明确清晰的学习路线 , 学习起来既轻松 , 又高效 。

执行分析和负载测试
分析你的 Java 应用程序将揭示潜在的痛点和瓶颈 。 确定需要改进的地方是提高 Java 应用程序性能的第一步 。 试图在不了解最显着的困难在哪里的情况下加快应用程序的速度 , 就像蒙着眼睛在飞镖板上扔飞镖一样 。
使用存储过程而不是查询
当你想从数据库中的一个表或一组表中检索数据时 , 通常会使用查询 , 但它们可能很昂贵 , 因为它们需要应用程序和数据库服务器进行大量处理 。 另一方面 , 存储过程被预编译为机器码 , 只需要编译一次 , 这使得它们的执行速度比查询快得多 。
在 Java 应用程序中使用缓存
缓存是一种通过将请求的数据保存在内存中以供以后重用来提高 Web 应用程序速度的方法 。 是一种在内存中的请求之间维护数据(可以是 servlet、命令、JSP 或应用程序数据)的方法 , 以便将来可以从内存中获取对同一数据或页面的请求 。 正确使用缓存可以减少延迟、避免网络拥塞、提高内容可用性以及减少内存和 CPU 周期的消耗 。
它通过允许更快的页面呈现和更少的服务器资源来提高应用程序性能 。 你可以使用缓存来创建可扩展的高性能应用程序 。 Java 对象缓存通过维护获取或构建成本高昂的对象的本地副本来提高服务器性能 。 对于可以缓存的项目类型或对象的原始来源没有任何限制 。
使用 StringBuilder
【Java|提高 Java 性能的技巧】如果你需要在应用程序中连接字符串 , 则必须避免使用字符串和 + 运算符 。 相反 , 如果你利用 StringBuilder 来防止在执行字符串连接时创建多个字符串对象 , 这将有所帮助 。 如果不需要太多的字符串连接 , 可以使用 String 类的 concat 方法 , 而不是使用 StringBuilder 作为替代 。