当前位置: 首页 > news >正文

广饶县住房和城乡建设局网站提升学历被骗怎么投诉

广饶县住房和城乡建设局网站,提升学历被骗怎么投诉,WordPress怎么用dz登录,wordpress设置固定链接转载自 11 个简练的 Java 性能调优技巧想要让你的项目一直高性能运作吗#xff1f;以下有一些技巧你可以拿去消除缓存瓶颈#xff0c;还有一些其他的性能调优建议。 大多数开发者认为性能优化是一个复杂的话题#xff0c;它需要大量的工作经验和相关知识理论。好吧#xff…转载自 11 个简练的 Java 性能调优技巧想要让你的项目一直高性能运作吗以下有一些技巧你可以拿去消除缓存瓶颈还有一些其他的性能调优建议。 大多数开发者认为性能优化是一个复杂的话题它需要大量的工作经验和相关知识理论。好吧这也不完全错。优化一个应用做到性能最优化可能不是件容易的任务但是这并不意味着你没有相关的知识就什么也做不了。这里有一些易于遵循的建议和最佳实践可以帮助你创建一个性能良好的应用程序。 这些建议的大部分都是针对 Java 语言的。但是也有一些是跟语言无关的你可以运用到任意的应用和程序中。在我们学习特定的 Java 编程性能调优之前先来探讨一些通用的技巧。 1. 在明确必要之前别急着优化 这可能是最重要的性能优化技巧之一。你应该遵循常见的最佳实践做法并在案例中高效地应用它。但是这并不意味在证明必要之前你应该更换任何标准库或构建复杂的优化。 多数情况下过早地优化会占用大量的时间而且会使代码变得难以理解和阅读。更糟糕的是这些优化通常并没带来任何好处因为你花了大量的时间在优化应用中的非关键部分。 那么要怎么证明东西需要优化呢 首先你需要定义你的代码速度得多快。例如为所有 API 调用指定最大响应时间或者指定在特定时间范围内要导入的记录数量。在做完这些后你需要确定你应用中哪些部分太慢需要改进。当完成这些后你就可以来看看第二个技巧提示。 2. 使用分析器找到真正的瓶颈 在完成第一部分的优化建议以鉴别出你应用中需要提升的部分后要从哪里入手呢? 你可以有两种途径来解决这个问题 1查看你的代码从看起来可疑的或者你觉得可能会导致出现问题的地方入手 2或者使用分析器获取代码每个部分的行为(执行过程)和性能的详细信息。 希望我不需要解释为什么应该始终遵循第二种途径/方法的原因。 很显然基于分析器的方式可以让你更好地理解代码的性能影响并允许你去专注于更关键的部分(代码)。即使你曾经使用过分析器你一定记得你曾经多么惊讶于一下就找到了代码的哪些部分产生了性能问题。我第一次的猜测不止一次地导致我走错了方向。 3. 为整个应用程序创建一个性能测试套件 这是另一个通用的可以帮助你避免在将性能改进部署到产品中之后经常会发生的许多意外问题的技巧。你应该总是定义一个性能测试套件来测试整个应用程序并在性能改进之前和之后运行它。 这些额外的测试运行将帮助你识别你的改动所引起的功能和性能上的副作用并确保不会导致弊大于利的更新。如果你处理的是被应用程序的多个不同部分使用的组件如数据库或缓存那这一点尤为重要。 4. 优先关注最大瓶颈 在创建了测试套件并使用分析器分析你的应用程序之后你可以列出一系列需要解决以提高性能的问题列表。这很好但这并没有回答你需要从哪里开始的问题。你可以专注于速成方案或从最重要的问题开始。 速成方案一开始可能会很有吸引力因为你可以很快显示第一个成果。但有时可能有必要说服其他团队成员或管理层认为性能分析是值得的。 一般来说我建议从顶层开始首先开始处理最重要的性能问题。这将为你提供最大的性能改进而且你可能仅需要解决这些问题中的一小部分就能满足你的性能要求。 常见的通用调优技巧到此结束。接下来让我们仔细看看一些特定于 Java 的技巧。 5. 使用 StringBuilder 以编程方式连接字符串 在 Java 中有很多不同的选项来连接字符串。例如你可以使用简单的 或 以及老的 StringBuffer 或 StringBuilder 。 那么你应该选择哪种方法呢 答案取决于连接字符串的代码。如果你是以编程方式将新内容添加到字符串中例如在 for 循环中则应使用 StringBuilder 。它很易于使用并提供比 StringBuffer 更好的性能。但请记住与 StringBuffer 相比 StringBuilder 不是线程安全的可能并不适用于所有情况。 你只需要实例化一个新的 StringBuilder 并调用 append 方法来向 String 中添加一个新的部分。在你添加完了所有的部分后你可以调用 toString() 方法来检索已连接的字符串。 下面的代码片段展示了一个简单的例子。在每次迭代期间该循环将 i 转换为一个 String 并将其与空格一起添加到 StringBuilder sb 中。所以最后这段代码在日志文件中写入 “This is a test0 1 2 3 4 5 6 7 8 9” 。 StringBuilder sb  new StringBuilder(“This is a test”);for (int i0; i10; i) {   sb.append(i);   sb.append(” “);}log.info(sb.toString());正如你在我们的公众号Java技术栈代码片段中看到的我们可以为字符串的第一个元素提供到构造函数中。这会创建一个 StringBuilder 其中包含了你所提供的字符串以及 16 个额外字符的容量。当你向 StringBuilder 中添加更多字符时你的 JVM 将动态的增加 StringBuilder 的大小。 如果你已经知道字符串将包含多少个字符则可以将该数字提供给不同的构造方法以实例化具有指定容量的 StringBuilder 。这进一步提高了效率因为它不需要动态扩展其容量。 6. 使用 连接一个语句中的字符串 当你使用 Java 实现你的第一个应用程序时可能有人告诉过你不要使用 来连接字符串。如果你是在应用程序逻辑内连接字符串的话这是对的。字符串是不可变的每个字符串的连接结果都被存储在一个新的字符串对象中。这需要额外的存储空间并可能使你的应用程序运行缓慢特别是当你在一个循环内连接多个字符串的情况下。 在这些情况下你应该遵循技巧 5 中的内容并使用 StringBuilder 。 但如果你只是将字符串分成多行来改善代码的可读性这并不适用。 Query q em.createQuery(“SELECT a.id, a.firstName, a.lastName ” “FROM Author a ” “WHERE a.id :id”);在这些情景下你应该使用简单的 来连接字符串。你的 Java 编译器会优化它并在编译时完成连接。因此在运行时你的代码将只使用一个字符串并不需要任何连接操作。 7. 尽可能使用基本类型 避免任何开销并提高应用程序性能的另一种简便快速的方法是使用基本类型而不是其包装类。所以最好使用 int 而不是 Integer 是 double 而不是 Double 。这将使得你的 JVM 将值存储在堆栈而不是堆中以减少内存消耗并更有效地处理它。 8. 尽量避免大整数和小数 由于我们已经在讨论数据类型所以我们也应该快速浏览大整数和小数。尤其是后者因其精确性而受欢迎。但这是有代价的。 大整数和小数比一个简单的 long 型或 double 型需要更多的内存并会显著减慢所有的运算。所以如果你需要额外的精度或者如果你的数字超出一个较长的范围最好要三思。这可能是你需要更改并解决性能问题的唯一方法尤其是在实现数学算法时。 9. 优先检查当前日志级别 这个建议应该是显而易见的但不幸的是很多人在写代码的时候都会忽略它。 在创建调试消息之前应该总是优先检查当前日志级别。 否则你可能会创建一个附加你日志消息的字符串而该字符串之后将被忽略。 这里有两个你不应该这样做的反面例子。 // don’t do thislog.debug(“User [” userName “] called method X with [” i “]”);// or thislog.debug(String.format(“User [%s] called method X with [%d]”, userName, i));在这两个示例中你都将执行创建日志消息所有必需的步骤而不知道日志框架是否将使用日志消息。 因此在创建调试消息之前最好先检查当前的日志级别。 // do thisif (log.isDebugEnabled()) {   log.debug(“User [” userName “] called method X with [” i “]”);}10. 使用 Apache Commons StringUtils.Replace 而不是 String.replace 一般来说String.replace 方法可以正常工作并且效率很高尤其是在你使用 Java 9 的情况下。但是如果你的应用程序需要大量的替换操作并且没有更新到最新的 Java 版本那么检查更快和更有效的替代品依然是有必要的。 有一种候选方案是 Apache Commons Lang 的 StringUtils.replace 方法。正如 Lukas Eder 在他最近的一篇博客文章中所描述的它远远胜过了 Java 8 的 String.replace 方法。 而且它只需要很小的改动。你只需要将 Apache Commons Lang 项目的 Maven 依赖项添加到你的应用程序的 pom.xml 中并将 String.replacemethod 的所有调用替换为 StringUtils.replace 方法。 // replace thistest.replace(“test”, “simple test”);// with thisStringUtils.replace(test, “test”, “simple test”);11.昂贵的缓存资源如数据库连接 缓存是避免重复执行昂贵或常用代码片段的流行解决方案。总的思路很简单重复使用这些资源比创建一个新的资源更划算。 一个典型的例子是缓存池中的数据库连接。新连接的创建需要时间如果你重用现有连接则可以避免这种情况。 你也可以在 Java 语言源码中找到其他的例子。例如在 Integer 类中的 valueOf  方法缓存了介于 -128 到 127 之间的值。你可能会说创建一个新的 Integer 并不是太昂贵但是由于它经常被使用因此缓存最常用的值也可以提供性能优势。 但是当你考虑使用缓存时请记住缓存实现也会产生开销。你需要花费额外的内存来储存可重复使用的资源因此你可能需要管理你的缓存以使资源可访问并删除过期的资源。 所以在开始缓存任何资源之前请确保它们是经常使用的以超过缓存实现的开销(代价)。 总结 正如你所看到的有时不需要太多的工作就可以提高你的应用程序的性能。本文中的大部分建议只需要稍作努力就可以将它们应用于你的代码中。 但还是那句话最重要的还是那些与是什么编程语言无关的技巧 在你知道其必要性之前不要进行优化使用分析器profiler来查找真正的瓶颈优先处理最大的瓶颈
http://www.zqtcl.cn/news/861223/

相关文章:

  • 如何做网站关键词wordpress安装卡死
  • word模板免费下载网站山东定制网站建设公司
  • 郑州网站推广排名公司win7上怎样卸载wordpress
  • 科技网站有哪些wordpress代码编辑器件
  • 做英文企业网站多钱钱wordpress调用外链图片
  • 自学网站查分数西双版纳傣族自治州天气
  • 网站建设一个多少钱wordpress朗读句子插件
  • 网站关键词怎么填写找代理商的渠道有哪些
  • 网站开发销售简历范文新建网站网络空间
  • 舟山外贸建站公司制作公司简介
  • 菜鸟是什么网站威海网站建设费用
  • 网站开发花费如何制作个人网页兼职
  • 网站鼠标特效用户体验最好的网站
  • 网站设计步骤图南通网站建设公司
  • 做盗版系统网站会不会开发次元世界
  • 下载爱南宁官方网站手机app开发软件有哪些
  • 云浮网站设计不收费的企业查询网站
  • 网站栏目怎么做iis网站筛选器被挂马
  • 网站开发中遇到的主要问题品牌营销策略包括哪些内容
  • 网站制作易捷网络十大社区团购平台有哪些
  • 哈尔滨口碑好的建站公司做网站制作一般多少钱
  • 河南网站网站制作华为品牌vi设计
  • 网站设置默认主页甘肃省第八建设集团公司网站
  • 自己做网站美工关键词优化排名网站
  • 淄博手机网站建设报价商业网站地方频道
  • 小说网站开发业务逻辑php 网站
  • 专业的做网站动态个人网站模板
  • 设计师网站设计网站开发试题库
  • 做网站是用c 吗东莞网络推广优化
  • 外贸soho网站建设wordpress配置搜索引擎优化