代码优化

前端随笔

僤鯓⒐⒋嵵緔 提交于 2020-02-22 05:51:34
把之前存的一堆自己觉得记录的知识点全部记录一下,有兴趣可以看看,共勉。 $ ( function ( ) { todo ( '71899703 200 6 91 425 4 67407 7 96488 6 4 2 7 31064 9 7920 1 34608557 27 72 18 81' ) . then ( f2 ) } ) ; function todo ( e ) { // var dfd = $.Deferred(); // setTimeout(function () { // // f1的任务代码 // dfd.resolve(); // }, 500); // return dfd.promise; // console.log(e.length) // var e = input; var x = e . length ; var y ; // 输出集合 var list = [ ] ; // 排序用集合 var templist = [ ] ; for ( var i = 0 ; i < x ; i ++ ) { y = e . split ( " " ) [ i ] ; if ( ! y ) { break ; } list [ i ] = y ; var sum = 0 ; for ( var n = 0 ; n < y . length ; n ++ )

代码简洁之道(判断篇)

你说的曾经没有我的故事 提交于 2020-02-20 10:18:48
摘自: https://www.cnblogs.com/guangzan/p/12222370.html 代码简洁之道(判断篇) 第一个例子 copy if (state === 1) { return true } else if (state === 2) { return true } else if (state === 3) { return true } else if (state === 4){ return true } else { return false } 你首先想到的可能是 使用 switch case, 我们使用 switch case 来改写它: copy switch (state) { case 1: return true break; case 2: return true break; case 3: return true break case 4: return true break default: return false break } 看起来有些条理了, 但我们应对这类情况,可以将他进一步优化,观察发现: 都是判断 state 判断后都做了相同的事情 (return true) 我们用 Array.includes 来优化它: includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

软工实践寒假作业(2/2)

邮差的信 提交于 2020-02-19 20:17:00
这个作业属于哪个课程 2020软工|S班 这个作业要求在哪里 软工实践寒假作业(2/2) 这个作业的目标 设计、开发一个疫情统计的程序、学习对程序的优化、学习GitHub的使用、PSP(个人软件开发流程)的学习使用、《构建之法》的学习 作业正文 作业正文 其他参考文献 CSDN 1.github仓库地址 我的github仓库地址 2.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 40 45 Estimate 估计这个任务需要多少时间 5 5 Development 开发 200 180 Analysis 需求分析 (包括学习新技术) 160 120 Design Spec 生成设计文档 80 55 Design Review 设计复审 30 35 Coding Standard 代码规范 (为目前的开发制定合适的规范) 150 150 Design 具体设计 20 20 Coding 具体编码 200 300 Code Review 代码复审 60 70 Test 测试(自我测试,修改代码,提交修改) 340 270 Reporting 报告 150 100 Test Repor 测试报告 20 20 Size Measurement 计算工作量 45 30

八数码的八境界

戏子无情 提交于 2020-02-17 11:46:11
以下理论部分转自 http://www.cnblogs.com/goodness/archive/2010/05/04/1727141.html ,自己就是一步一个境界地做,把每境界的代码记录下来。 研究经典问题,空说不好,我们拿出一个实际的题目来演绎。八数码问题在北大在线测评系统中有一个对应的题,题目描述如下(POJ 1077): Eight Time Limit: 1000MS Memory Limit: 65536K Special Judge Description The 15-puzzle has been aroundfor over 100 years; even if you don't know it by that name, you've seen it. Itis constructed with 15 sliding tiles, each with a number from 1 to 15 on it,and all packed into a 4 by 4 frame with one tile missing. Let's call themissing tile 'x'; the object of the puzzle is to arrange the tiles so that theyare ordered as: 1 2 3 4 5

八数码的八境界

ぃ、小莉子 提交于 2020-02-17 11:37:05
以下理论部分转自 http://www.cnblogs.com/goodness/archive/2010/05/04/1727141.html ,自己就是一步一个境界地做,把每境界的代码记录下来。 研究经典问题,空说不好,我们拿出一个实际的题目来演绎。八数码问题在北大在线测评系统中有一个对应的题,题目描述如下(POJ 1077): Eight Time Limit: 1000MS Memory Limit: 65536K Special Judge Description The 15-puzzle has been aroundfor over 100 years; even if you don't know it by that name, you've seen it. Itis constructed with 15 sliding tiles, each with a number from 1 to 15 on it,and all packed into a 4 by 4 frame with one tile missing. Let's call themissing tile 'x'; the object of the puzzle is to arrange the tiles so that theyare ordered as: 1 2 3 4 5

八数码的八境界

﹥>﹥吖頭↗ 提交于 2020-02-17 11:36:01
以下理论部分转自 http://www.cnblogs.com/goodness/archive/2010/05/04/1727141.html ,自己就是一步一个境界地做,把每境界的代码记录下来。 研究经典问题,空说不好,我们拿出一个实际的题目来演绎。八数码问题在北大在线测评系统中有一个对应的题,题目描述如下(POJ 1077): Eight Time Limit: 1000MS Memory Limit: 65536K Special Judge Description The 15-puzzle has been aroundfor over 100 years; even if you don't know it by that name, you've seen it. Itis constructed with 15 sliding tiles, each with a number from 1 to 15 on it,and all packed into a 4 by 4 frame with one tile missing. Let's call themissing tile 'x'; the object of the puzzle is to arrange the tiles so that theyare ordered as: 1 2 3 4 5

2019PHP面试题最全面归纳总结

℡╲_俬逩灬. 提交于 2020-02-17 06:49:46
1、请选择以下代码运行的结果: <?php if ('1e3' == '1000') echo 'LOL'; ?>   A 无任何输出结果      B LOL       C 不执行且报错 解析:1e3 是 科学计数法 实数的指数形式 为1乘以10的三次方,故‘1e3’=='1000'是成立的,输出echo ‘LOL’; 2、请选出以下代码运行的结果: <?php $a = "aabbzz"; $a++; echo $a; ?>   A b            B aabbzz            C aabcaa 解析: 字符串字母相加其实就是在末尾字母加一 如:$a = "a"; $a++;答应结果就是 b,$a=''aa';结果就是ab 故$a = "aabb";打印结果就是 aabc ,如$a = "aabbz";结果就是 aabca,因为Z是末尾字母故加一变为a,向前一位进一,b就变为c,故结果为C; 3,写出一下程序的输出结果:<?php   $data = ['a','b','c']; foreach($data as $k=>$v){ $v = &$data[$k]; } > A $data = ['a','b','c'];            B $data = ['b','b','c'];            C $data = ['b','c','c

js优化细则整理(详细版)

非 Y 不嫁゛ 提交于 2020-02-15 13:31:53
目录 原生js部分 关于JQ部分 原生js部分 参考文章 js性能优化的小知识 javascript性能优化技巧 JavaScript性能优化之小知识总结 DOM编程 建议将对象进行缓存处理,特别是DOM访问是比较消耗资源的 使用DocumentFragment优化多次append 一旦需要更新DOM,请考虑使用文档碎片来构建DOM结构,然后再将其添加到现存的文档中。 for (var i = 0; i < 1000; i++) { var el = document.createElement('p'); el.innerHTML = i; document.body.appendChild(el); } //可以替换为: var frag = document.createDocumentFragment(); for (var i = 0; i < 1000; i++) { var el = document.createElement('p'); el.innerHTML = i; frag.appendChild(el); } document.body.appendChild(frag); 使用一次innerHTML赋值代替构建dom元素 对于大的DOM更改,使用innerHTML要比使用标准的DOM方法创建同样的DOM结构快得多。 var frag =

冒泡排序及其优化的C++代码实现

谁说胖子不能爱 提交于 2020-02-14 11:35:46
关于冒泡排序算法,这里就不多说了。 简单说一下优化,一般的冒泡排序是单向的,而其优化之一就是双向冒泡:正向扫描获取最大值,反向扫描获取最小值。 由于C++11以前的实现有点复杂,在此就基于C++11新特性来实现,并写成库的形式。 编译环境:C++11 代码实现如下: #include <type_traits> // std::declval template<typename _Tp> void swap(_Tp &a1, _Tp &a2) { _Tp tmp = a1; a1 = a2; a2 = tmp; } template<typename _Tp> struct Comparator { int operator()(const _Tp &arg1, const _Tp &arg2) const { if(arg1 < arg2) return 1; if(arg2 < arg1) return -1; return 0; } }; typedef unsigned long size_type; /// 普通冒泡排序 /// 范围:[beg, end) /// 参数限定:支持前向迭代 template<typename _ForwardIter, typename _Compare = Comparator<decltype(*std::declval<

微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结

不羁岁月 提交于 2020-02-13 06:21:40
1、引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了。 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟。如今用公司配的 17 年款 27-inch iMac 编译要接近半小时;偶然间更新完代码,又莫名其妙需要全新编译。在这么低的编译效率下,开发心情受到严重影响。 于是年初我向上头请示,优化微信编译效率,上头也同意了。 2、现有方案 在动手之前,先搜索目前已有方案,大概情况如下。 2.1 优化工程配置 1)将 Debug Information Format 改为 DWARF: Debug 时是不需要生成符号表,可以检查一下子工程(尤其开源库)有没有设置正确。 2)将 Build Active Architecture Only 改为 Yes: Debug 时是不需要生成全架构,可以检查一下子工程(尤其开源库)有没有设置正确。 3)优化头文件搜索路径: 避免工程 Header Search Paths 设置了路径递归引用: Xcode 编译源文件时,会根据 Header Search Paths 自动添加 -I 参数,如果递归引用的路径下子目录越多,-I 参数也越多,编译器预处理头文件效率就越低,所以不能简单的设置路径递归引用。同样 Framework Search Paths 也类似处理。 2.2 使用 CocoaPods 管理第三方库 这是业界常用的做法