技术标签: 前端 javascript
检测相同运行结果的程序的好坏,就用到了程序运行时间的长短,可以方便更改运行速度最快的代码
目前我所了解的俩种方式是直接输出到控制台的time,imeEnd和时间戳;
时间戳:指的是从格林威治标准时间的1970年1月1日,0时0分0秒到当前日期所花费的毫秒数(1秒 = 1000毫秒),计算机底层在保存时间时使用都是时间戳
方法一:利用时间戳来测试代码的执行的性能
首先获取时间戳 ,利用Date对象的Now()属性获取当前的时间戳,例如
定义start接收运行前的时间戳
var start=Date.now();
for(var i=0;i<100000;i++)
{
console.log(i);
}
定义end接受运行后的时间戳
var end=Date.now();
console.log(end-start);
具体代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
// 计时开始,参数为计时器的名称,它的作用是在代码并行运行时分清楚各个计时器。
var start=Date.now();
for(var i=0;i<100000;i++)
{
console.log(i);
}
var end=Date.now();
console.log(end-start);
</script>
</head>
<body>
</body>
</html>
之后就可计算出运行所需要的时间 结果如下 运行时间810毫秒 注:以毫秒为单位
方法二:直接输出到控制台的time,imeEnd
在程序运行前计时开始
console.time('testTime');
括号中的参数为计时器的名称,它的作用是在代码并行运行时分清楚各个计时器。
程序结束时停止计时并且输出时间
console.timeEnd('testTime');
具体代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
console.time('testTime'); // 参数为计时器的名称,它的作用是在代码并行运行时分清楚各个计时器。
for(var i=0;i<100000;i++)
{
console.log(i);
}
console.timeEnd('testTime');
</script>
</head>
<body>
</body>
</html>
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> ..._python两个实数相加
我们在APR的时候,所用到的std cell或者IP、macro都是要吃LEF的,而最终交付生产的时候要生成GDS文件给工厂。那么这两个文件都是什么意思呢?需要注意哪些问题?我今天就来详细探讨一下。首先,什么是LEF?全称为library exchange format,注意这里的L是library,不要把LIB搞混了,LIB是liberty。它是一种库交换格式,只记录了在APR时所要用到的最基本的物理信息,多一点都不记录。什么意思呢,各位想一想后端设计的时候,我们要摆放连线一个cell或者IP,需要什_lef viamodel
文章目录问题描述文章参考快速使用 ui-router路由嵌套应用场景如何定义嵌套路由动态路由(restful传递参数)应用场景如何使用动态路由生命周期函数ng-click 方法中的this指向的$scope问题描述由于 ionic 1.x 是使用的 ui-router,因此我这里也是重点学习了ui-router文章参考深究AngularJS——ui-router详解快速使用 ui-router引入angularjs 和 ui-router 库<script src="../pub_angularjs判断是否是子路由
最近做了一个图片添加水印的功能:传入的参数为:原图的bitmap,水印的字符串,以及context。原图的bitmap可以先取得图片的文件输入流fis,之后通过 Bitmap bm = BitmapFactory.decodeStream(fis, null, opt); 方法来取得。添加水印的方法如下:public Bitmap addWaterMark(Bitmap src, St
Layui 的上传是最常用的, 不可或缺, 记录一下代码, 以后复制都能用!! 1.前端HTML:
在xcode中出现:‘XXXX’ was compiled with optimization - stepping may behave oddly; variables may not be available然后用单步调式模式出,一些变量出现空值,并且,不按顺顺执行语句。方法,工程在编译之后被优化了,所以导致单步的时候程
数据结构知识汇总1 线性表2 栈与队列3 串4 树4.1 链式树4.2 二叉树4.3 线索二叉树4.4 二叉排序树4.5 平衡二叉树4.6 树、森林与二叉树的转换4.7 哈夫曼树4.8 B树5 图6 查找7 排序1 线性表因为数据元素是一对一的关系,即线性关系,故称为线性表。顺序表线性链表单链表、循环链表、双向链表数组数组是线性表的推广,是由一组具有相同特性的数据元素组成。矩阵的..._ltag数据结构
几天在帮一个同事编译Xen中的tools时,我改了一些config文件,然后就遇到了一个错误“Makefile:72: *** multiple target patterns. Stop.”花了大约半个小时才找到了这个错误是自己写错了一个配置的原因,将其过程及其根本原因说一下。总的来讲,“mutiple target patterns”这个错误,一般是由于Makefile中targe
背景:由于浏览器同源策略的限制,非同源下的请求,都会产生跨域问题,jsonp即是为了解决这个问题出现的一种简便解决方案。同源策略即:同一协议,同一域名,同一端口号。当其中一个不满足时,我们的请求即会发生跨域问题。举个简单的例子:http://www.abc.com:3000到https://www.abc.com:3000的请求会出现跨域(域名、端口相同但协议不同) http://www.abc.com:3000到http://www.abc.com:3001的请求会出现跨域(域名、协议_jsonp跨域原理
大部分品牌的智能电视产品出厂时都内置了应用商店,但是这些商店内下载的软件都是比较鸡肋的应用,没有实际作用。而且还有很多电视不支持U盘安装第三方软件,现在给大家介绍一种方法,解决智能电视无法安装第三方软件的问题。开启工程模式市场上所有品牌智能电视系统都有工程模式,此模式下不仅可以看到电视的实际参数数据,还能够打开限制第三方应用软件安装的开关俗称ADB,下面我们选了两款不支持直接安装第三方软件的智能..._创维电视进入工厂模式
5.1. mysql自增主键返回查询id的sqlSELECT LAST_INSERT_ID() 通过修改User.xml映射文件,可以将mysql自增主键返回:如下添加selectKey 标签<!-- 保存用户 --><insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User"> <!-- s..._mybatis 实体主键无法修改
(一)字符串->数组1、public int getCount(String str,String sign){//查找某一字符串中str,特定子串s的出现次数 if(str==null) return 0; StringTokenizer s=new St