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

模板网站区别谷歌seo关键词排名优化

模板网站区别,谷歌seo关键词排名优化,一万并发量的视频网站建设,招远网站开发大多数开发人员认为性能优化是个比较复杂的问题#xff0c;需要大量的经验和知识。是的#xff0c;这并不没有错。诚然#xff0c;优化应用程序以获得最好的性能并不是一件容易的事情#xff0c;但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。下面有几个很…大多数开发人员认为性能优化是个比较复杂的问题需要大量的经验和知识。是的这并不没有错。诚然优化应用程序以获得最好的性能并不是一件容易的事情但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。下面有几个很容易遵循的建议和最佳实践能够帮你创建一个性能良好的应用程序。 这些建议中的大多数都是基于Java的但是也不一定也有一些是可以应用于所有的应用程序和编程语言的。在我们分享基于Java的性能调优技巧之前让我们先讨论一下这些通用的性能调优技巧。 1.在必要之前先不要优化 这可能是最最重要的性能调优技巧之一。你应该遵循常见的最佳实践并尝试有效地实现你的用例。但这并不意味着在证明它是必要之前替换任何标准库或构建复杂的优化。 在大多数情况下过早的优化占用了大量的时间使得代码难以读取和维护。更糟糕的是这些优化通常不会带来任何好处因为你花费了大量时间来优化应用程序的非关键部分。 那么你如何证明你需要优化某些东西呢? 首先你需要确定应用程序代码的速度例如为所有API调用指定一个最大响应时间或者指定在特定时间范围内导入的记录数量。完成之后你可以度量应用程序的哪些部分太慢而需要改进。当这样做之后那么请继续看第二个调优技巧。 2.使用分析器来找到真正的瓶颈 在你遵循第一条建议并确定你的应用程序的某些部分的确需要改进之后问自己从哪里开始? 你可以用两种方法来解决这个问题: 你可以看一下你的代码从看起来可疑或者你觉得它可能会产生问题的部分开始。或者使用分析器获取代码中每个部分的行为和性能的详细信息。 至于为什么应该总是遵循第二种方法。 答案应该很明显基于分析器的方法能让你更好地理解代码的性能含义并允许你关注最关键的部分。如果你曾经使用过分析器你将会惊讶于代码的哪些部分造成了性能问题。然而很多时候你的第一次猜想会把你引向错误的方向。 3 .为整个应用程序创建性能测试套件 这是另一个帮助你避免许多意想不到问题的一般技巧这些问题通常发生在性能改进部署到生产环境之后。你应该经常定义测试整个应用程序的性能测试套件并在你完成性能改进之前和之后运行它。 这些额外的测试运行将帮助你识别更改的功能和性能方面的影响并确保你不会发布一个弊大于利的更新。如果你的任务运行于应用程序的多个不同部分比如数据库或缓存这一点尤其重要。 4.首先解决最大的瓶颈问题 在创建了测试套件并使用分析器对应用程序进行分析之后你就有了一个需要提高性能的问题列表这很好但它仍然不能回答你应该从哪里开始的问题。你可以从那些可以快速搞定的开始亦或者从最重要的问题开始。 当然前者很诱人因为这很快就能出结果。有时可能需要说服其他团队成员或你的管理层性能分析是值得的。 但总的来说我建议首先着手处理最重要的性能问题。这将为你提供最大的性能改进而且你可能只需要修复这些问题中的几个就可以解决你的性能需求。 在了解通用性能调优技巧之后让我们再来仔细看看一些特定于Java的调优技巧。 5.使用StringBuilder以编程方式连接字符串 在Java中有许多不同的连接字符串的选项。例如可以使用一个简单的或 、老的StringBuffer或StringBuilder。 那么你应该选择哪种方法呢? 答案取决于连接字符串的代码。如果你以编程方式向字符串中添加新内容例如在for循环中你应该使用StringBuilder。它比StringBuffer更容易使用和提供更好的性能。但是请记住StringBuilder与StringBuffer不同它不是线程安全的而且可能不适合所有用例。 你只需要实例化一个新的StringBuilder并调用append方法在字符串中添加一个新的部分。当你添加了所有的部分后可以调用toString()方法来检索连接字符串。 下面的代码片段展示了一个简单的示例。在每次迭代过程中这个循环将i转换成一个字符串并将其添加到StringBuilder sb的空间中因此到最后这段代码写入“this is test0123456789”到日志文件。 StringBuilder sb new StringBuilder(“This is a test”); for (int i0; i10; i) {sb.append(i);sb.append(” “); } log.info(sb.toString());正如在代码片段中看到的你可以为构造函数方法提供字符串的第一个元素。这将创建一个新的StringBuilder其中包含提供的字符串和16个额外字符的容量。当你向StringBuilder中添加更多字符时JVM将动态地改变StringBuilder的大小。 如果你已经知道自己的字符串包含多少字符那么你可以向不同的构造函数方法提供这个数字以实例化一个具有被定义容量的StringBuilder。这进一步提高了它的效率因为它不需要动态扩展它的容量。 6.在声明中使用连接字符串 当你在Java中实现第一个应用程序时可能有人告诉你不应该用来连接字符串。如果在应用程序逻辑中连接字符串这是正确的。字符串是不可变的每个字符串连接的结果存储在一个新的字符串对象中。这需要额外的内存并降低应用程序的速度特别是在循环中连接多个字符串时。 在这些情况下你应该遵循tip 5并使用StringBuilder。 但如果你只是将一个字符串分解成多行来提高代码的可读性那就不是这样了。 Query q em.createQuery(“SELECT a.id, a.firstName, a.lastName ”“FROM Author a ”“WHERE a.id :id”); 在这些情况下你应该用一个简单的来连接你的字符串。Java编译器将优化它并在编译时执行连接。因此在运行时代码只使用1个字符不需要连接。 7.尽可能使用基本数据类型 另一种避免开销提高应用程序性能的快速方法就是使用原始数据类型而不是它们的包装类。因此最好是使用int而不是Integer或者是double而不是Double。这将让JVM将值存储在堆栈中以减少内存消耗并更有效地处理它。 8.尽量避免BigInteger和BigDecimal 由于我们已经讨论了数据类型我们再来看下BigInteger和BigDecimal。尤其是后者由于其精度高而受欢迎。但这是有代价的。 BigInteger和BigDecimal比简单的long或double需要更多的内存并且大大降低所有的计算速度。因此如果你需要额外的精度或者你的数字超过了一个long范围最好三思而后行。这可能是你在提升性能问题中唯一需要更改的地方特别是当你正在实现一个数学算法。 9.首先检查当前日志级别 这个建议是显而易见的但不幸的是你会发现许多代码忽略它。在创建调试消息之前应该先检查当前日志级别。 这里有两个例子来说明你不应该这样做。 // don’t do this log.debug(“User [” userName “] called method X with [” i “]”); // or this log.debug(String.format(“User [%s] called method X with [%d]”, userName, i)); 在这两种情况下你将执行所有需要的步骤来创建日志消息而不知道日志框架是否使用日志消息。在创建调试消息之前最好先检查当前日志级别。 // do this if (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’s StringUtils.replace 方法。正如Lukas Eder在他最近的一篇博客文章中所描述的那样它大大超过了Java 8的String.replace 方法。 它只需要很小的改变。你只需要为Apache’s Commons Lang 项目增加一个Maven依赖项到你的应用pom.xml并用StringUtils.replace方法替换所有String.replace方法的调用。 // replace this test.replace(“test”, “simple test”); // with this StringUtils.replace(test, “test”, “simple test”);11.缓存昂贵的资源比如数据库连接 缓存是一种流行的解决方案来避免重复执行昂贵或频繁使用的代码片段。一般的想法很简单:重复使用这些资源比一次又一次地创建一个新的资源要便宜得多。 一个典型的例子就是在池中缓存数据库连接。创建新连接需要时间如果重用现有连接则可以避免。 还可以在Java语言本身中找到其他示例。例如Integer类的valueOf方法缓存了- 128和127之间的值。你可能会说创建一个新整数并不太贵但它经常使用缓存最常用的值提供了性能方面的好处。 但当你考虑缓存时请记住缓存实现也会产生开销。你需要花费额外的内存来存储可重用资源因此可能需要管理你的缓存以使资源能够访问或删除过时的资源。 因此在你开始缓存任何资源之前请确保是经常使用。 总结 正如你所看到的提高应用程序的性能有时不需要做大量的工作。这篇文章中的大多数建议其实只需要稍微的努力就可以将它们应用到代码中。 但通常最重要的建议是很编程语言无关的: 在你知道有必要之前不要优化使用分析器来找到真正的瓶颈首先解决最大的瓶颈问题 原文链接11 Simple Java Performance Tuning Tips责编魏伟
http://www.pierceye.com/news/186844/

相关文章:

  • 织梦搭建商城网站高端网站建设深圳
  • 做网站排名优化的公司无需下载直接登录qq手机版
  • 网站不备案不能访问吗wordpress主题开发404页面
  • 工作总结个人总结自动app优化下载
  • 网站开发推荐书籍比较大的外贸网站
  • 上饶建设网站郑州网
  • 做淘宝客网站一定要备案吗没有网站域名备案
  • 用QQ群做网站排名慈溪网站制作哪家最好
  • 兴宁市网站建设手工艺品网站建设策划书
  • flash做网站导航网站品牌建设流程
  • 公司建设网站属于什么费用网站打模块
  • 网站建设应注意的问题网站备案验证码错误
  • 网站核验点网站自己怎么做的
  • 购物网站建设平台canvas可画网页版
  • 企业信息平台系统网站推广优化建设
  • 免费网站模板制作自助建站上建的网站免费吗
  • 深圳市网站建设外包公司门户网站代码结构
  • 昆明做网站建设找谁最新版在线 网
  • 东昌府聊城网站建设网站广告做的好的企业案例分析
  • asp三层架构做网站网站开发前端基础
  • 医院网站建设方案策划书把网站做成app的软件下载
  • 网站建设实践报告3000字wordpress消息提示插件
  • 网站制作的评价标准做网站后台需要什么
  • 学院网站建设服务宗旨实惠的网站建设产品
  • 网站改名 备案影视制作
  • 网站开发亿码酷技术网站建设选谋者
  • 智能家居网站模板怎样做网站标题优化
  • 深圳制作网站制作公司哪家好最简洁 wordpress主题
  • 重庆忠县网站建设公司推荐国内公关公司
  • 给彩票网站做代理违法吗wordpress文章与页面关联