代码优化

Java 代码的精优化

旧街凉风 提交于 2019-12-02 14:50:01
一、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。 反例: // BigDecimal 反例 BigDecimal decimal = new BigDecimal(11.801D); System.out.println("decimal:"+decimal); 正例: // BigDecimal 正例 BigDecimal bDecimal = BigDecimal.valueOf(11.801D); System.out.print("bDecimal:"+bDecimal); 执行结果: decimal:11.8010000000000001563194018672220408916473388671875 bDecimal:11.801 二、String.split(String regex)部分关键字需要转译 使用字符串String 的plit 方法时,传入的分隔字符串是正则表达式,则部分关键字(比如 .[]()| 等)需要转义。 2.1 String str = "small.sun.shine"; String[] strSplit = str.split("."); // .需要转义,反例 String[] strSplit1 = str.split("\\.

10_Vue指令篇之单次渲染DOM元素或者组件_v-once指令

喜你入骨 提交于 2019-12-02 14:38:12
1、v-once指令作用 只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。 2、代码实例 <!DOCTYPE html> < html lang = " en " > < head > < meta charset = " UTF-8 " > < title > 10_vue中单次渲染DOM元素或者组件_v-once </ title > </ head > < body > < div class = " app " > < p v-once > Once {{onlyOne}} is loaded successfully, loaded again and it's value will be never changed. </ p > </ div > </ body > < script src = " https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js " > </ script > < script > /* 只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。 */ var app = new Vue ( { el : '.app' , data : { onlyOne : 'LISHUANG

Linux系统调优参数

孤者浪人 提交于 2019-12-02 11:39:20
Centos系统参数优化 默认Linux内核对每个用户设置了打开文件最大数为1024,对于高并发网站,是远远不够的,需要将默认值调整到更大,调整方法有两种: Linux每个用户打开文件最大数临时设置方法,重启服务器该参数无效,命令行终端执行如下命令: ulimit -n 65535 Linux每个用户打开文件最大数永久设置方法,将如下代码加入内核限制文件/etc/security/limits.conf的末尾: * soft noproc 65535 * hard noproc 65535 * soft nofile 65535 * hard nofile 65535 如上设置为对每个用户分别设置nofile、noproc最大数,如果需要对Linux整个系统设置文件最大数限制,需要修改/proc/sys/fs/file-max中的值,该值为Linux总文件打开数,例如设置为:echo 3865161233 >/proc/sys/fs/file-max。 来源: https://blog.csdn.net/weixin_44049466/article/details/102757185

Java代码优化建议

筅森魡賤 提交于 2019-12-02 10:46:34
总结日常Java开发常见优化策略,持续更新。 尽可能使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。 及时关闭流 Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。而释放资源最好的地方就是 finally 代码块。 尽量减少对变量的重复计算 明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作: for (int i = 0; i < list.size(); i++){ ... } 建议替换为: for (int i = 0, length = list.size(); i < length; i++){ ... } 这样,在list.size()很大的时候,就减少了很多的消耗 尽量采用懒加载的策略,即在需要的时候才创建 例如: String str = "aaa"; if (i == 1){   list.add(str); } 建议替换为: if (i == 1){   String str =

翻译一篇外文 关于优化linux系统启动时间的文章

我是研究僧i 提交于 2019-12-02 06:09:51
翻译的比较烂,自己记录下。 启动时间最优化 Alexander belloni , Michael Opdenacker Free Electrons 简单的进程信息 简单的最优化分为如下方面讲: 原则 如何测量 用户区域 内核 启动 bootloader 笔记:完成样本镜像,测量启动时间,最优化启动脚本,最优化内核 原则: 1. 减少启动时间意味着首先要测量启动时间 2. 你需要选择启动和停止的参考点,即启动时间开始到结束的点。 一些减少启动时间的意见: 1. 最快的代码是代码没有被执行 2. Boot 的一大部分时间是将代码和数据从存储器搬到 ram 。读取少的代码和数据就会更快。 I/O 操作是耗时的。 3. 文件系统越大加载时间越长。 4. 所以没有运行的代码会让你的启动时间更长 5. 当然不同的存储器都不一样,一般 sd 卡要比 nand 快。 6. 使用 gcc 编译的时候用 -0s 的参数会让代码更小,但是代码将失去一些特性,这也行是一个办法。 学习开发板的影响 学习如何实现它 测量 measuring 1. 最好的仪器是示波器。 2. 测试上电启动时间,这是非常精准的测试方式。 3. 系统启动时写 GPIO 口和存储器是非常简单的。 4. 一些示波器能够负担得起。 5. 通常你不想用示波器,或者不想冒硬件连接的风险。 6. 通常我们通过串口反馈启动时间信息

第四次作业——结对作业

别说谁变了你拦得住时间么 提交于 2019-12-02 04:33:39
链接 在学习通上注明结对的成员对: 1班胡晓松-1班高健 结对成员的博客连接: https://www.cnblogs.com/maxilong/p/11729323.html 代码复审 代码复审核查表(高健) 由一班胡晓松完成 1.概要部分 1)代码符合需求和规格说明吗符合? 是 2)代码设计是否考虑周全? 周全 功能和要求相符 3)代码可读性如何? 一般 4)代码容易维护么? 容易 5)代码每一行都检查过了吗? 是 2.设计规范部分 1)设计是否遵循从已知的设计模式或项目中常用的模式? 是 2)有没有硬编码或字符串/数字等存在? 是 3)代码有没有依赖于某平台,是否会影响将来的移植? 否 4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 是 5)5.有没有无用的代码可以清除? 否 3.代码规范部分 1)修改的部分符合代码标准和风格嘛? 是 4.具体代码部分 1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常? 否 2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 0 3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 否 在分支中填入跳转语句 4

百度小程序性能优化

喜欢而已 提交于 2019-12-02 02:48:21
引子 : 一个指标引发的血案 https://www.cnblogs.com/Sherlock09/p/11726885.html 性能优化 进入移动互联网时代,传统Web开发技术(HTML,CSS,JavaScript)风光不再,客户端技术(iOS以及Android)依靠良好的体验重新崛起。但是客户端技术的开发效率始终无法与Web技术抗衡,同时会受到诸多平台层面的限制。在这一大背景下,小程序独特的架构诞生了,它将Web前端技术与传统的客户端技术结合在一起,其目的是在开发效率上超过传统的客户端技术,在使用体验上超越传统的Web前端技术。由于小程序的架构区别于传统的Web前端技术,开发者在开发过程可能会遇到一些性能上的问题。本文旨在介绍百度小程序一些实现原理和优化手段,帮助开发者优化自己的小程序。 一 小程序运行时简介 在传统的Web前端项目中,所有代码全部运行在浏览器中。而小程序提供的运行环境有两种,分为逻辑层和视图层。假设现在开发者的小程序项目中有两个页面 pages/index和pages/home ,那么逻辑层代码指的是 app.js 与 pages/index/index.js 还有 pages/home/home.js ,视图层代码指的是 pages/index/index.swan 和 pages/home/home.swan

全面的MySQL优化详解

落花浮王杯 提交于 2019-12-02 01:54:51
文章来自: 公众号平台–代码技巧 阅读文章前先唠叨一下:群发文章第三篇为小编分享的视频教程(视频+密码或者视频+朋友圈),有需要的可以查看。 Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的. 对于使用者来说Composer非常的简单,通过简单的一条命令将需要的代码包下载到 vendor 目录下,然后开发者就可以引入包并使用了. 其中的关键在于你项目定义的 composer.json ,可以定义项目需要依赖的包(可能有多个),而依赖的包可能又依赖其他的包(这就是组件的好处),这些都不用你烦心,Composer会自动下载你需要的一切,一切在于 composer.json 的定义. Composer对于使用者来说是很透明,但是其背后的理念还是需要了解一下的,其的诞生也不是偶然的,得益于Github的快速发展,PHP语言也越来越现代化,显得更高大上了. 为了理解Composer,先大概了解下其结构: Composer的结构 Composer命令行工具 : 这个理解就比较简单了,通过使用者定义的 Composer.json 去下载你需要的代码,假如只是简单的使用Composer,那么掌握一些具体命令就完全可以了 Autoloading代码加载器 : 通过Composer,开发者可以通过多种方式去使用

加载矢量数据的代码优化

一世执手 提交于 2019-12-02 00:08:49
深入来看,依据 ESRI公司数据浏览架构 ,数据打开需要经历以下 流程 : 首先利用新建工作空间工厂的方法打开工作空间;然后强制转换为要素工作空间或者栅格工作空间;最后使用要素工作空间或者栅格工作空间的方法打开(要素/矢量或栅格)数据。 对于ShapeFile来说,工作空间就是它所在的文件夹,打开工作空间需要使用对应的工作空间工厂,即ShapeFileWorkspaceFactoryClass,然后调用IWorkspaceFactory的OpenFromFile方法,就可以得到一个工作空间,这也是设计模式中工厂方法的体现。工作空间工厂的打开方法返回的是一般意义的工作空间,根据具体数据还需要进行接口转换。因为ShapeFile是矢量数据,所以把工作空间接口跳转到IFeatureWorkspace,从而读取其中的要素类。 这一点对于多种格式的数据(如Coverage、GeoDatabase、ArcSDE数据格式)都是一样。 对比代码: 最简单的ArcGIS Engine应用程序(上) private void menuAddShp_Click(object sender, EventArgs e) { IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory(); IWorkspace pWorkspace1

第四次博客作业-结对项目

走远了吗. 提交于 2019-12-01 20:18:24
1)提供你的结对成员的博客链接地址 四班阚宇航: https://www.cnblogs.com/designer97k/ (2)结对成员对四则运算项目进行代码互审,并给出代码审查结果表 二班孙帅群的代码审查表(由四班阚宇航完成) 代码复审核查表 1.概要部分 1.代码能符合需求和规范说明吗? 代码不符合需求和规格说明,运行时题目有存到result文档中,但是并没有弹出运行结果。 2.代码设计是否考虑周全? 代码满足需求,每个功能都能用类实现,但是考虑不周全,没有考虑用户的非法输入。 3.代码可读性如何? 代码缩进规范,代码中标识符命名不足够规范。 4.代码容易维护吗? 不容易维护,所有的功能都是在同一个类中完成。 5.代码的每一行都执行并检查过了吗? 代码每一行都能执行没有错误。 2.设计规范部分 1.设计是否遵循已知的设计模式或项目中常用的模式? 代码设计没有用到已知的常用的六种设计模式 2.有没有硬编码字符串或数字等存在? 没有硬编码,字符串或数字等存在 3.代码有没有依赖于某平台,是否会影响将来的移植? 代码用Java编写,没有依赖某一特定的平台,不影响移植 4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 代码中用到了Java中的其他包中的现有的类,所以不用全部重新实现。 5