易截截图软件、单文件、免安装、纯绿色、仅160KB

结合canvas进行javascript性能测试

在对程序进行性能测试时需要考虑到不同规模以及不同算法的效率的不同
下面的网页是一个对排序算法的性能测试,规模就是数组的长度,而测试的两个函数分别是手动实现的快速排序算法和javascript内置的排序函数。
<!DOCTYPE window PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<title>Performance</title>
<mce:script type="text/javascript"><!--
var $ = function(id) {
return document.getElementById(id);
};
$.extend = function(target, object) {
for (var i in object) {
target[i] = object[i];
}
return target;
};
// --></mce:script>
<mce:script type="text/javascript" src="performance.js" mce_src="performance.js"></mce:script>
<mce:script type="text/javascript"><!--
var a;
function qsort(l, u) {
if (l >= u) {
return undefined;
}
var i = l, j = u - 1, v = a[u], t;
while (1) {
while (a[i] < v) { i += 1; }
while (a[j] > v) { j -= 1; }
if (i >= j) {
break;
}
t = a[i];
a[i] = a[j];
a[j] = t;
i += 1;
j -= 1;
}
t = a[i];
a[i] = v;
a[u] = t;
qsort(l, j);
qsort(i + 1, u);
};
performance({
// reset函数在每次改变规模时被调用,参数x是规模
// 生成一个长度为x的随机数组
reset: function(x) {
a = [];
while (x--) {
a[x] = ~~(Math.random() * x);
}
},
func: [
function quicksort(x) {
qsort(0, x);
},
function nativesort(x) {
a.sort();
}
],
dimensionStart: 1,
dimensionEnd: 1000,
dimensionIncrement: 1,
});
// --></mce:script>
</head>
<body>
<canvas id="canvas" width="1400" height="800"></canvas>
</body> 
performance.js包含主要的进行测试的代码。在控制台中输入performance.start()开始进行测试,可以看到canvas上从左到右出现黑色与红色的点,黑色代表quicksort,而红色代表nativesort
可以随时performance.end()终止测试
图像中的横轴表示规模,而纵轴表示运行的


相关文档:

简单的正则表达式 JavaScript翻译器

最近,我参考,根据正则表达式构建DFA(确定的有穷自动机)的技术,完成了一个从正则表达式到JavaScript的翻译器。
翻译器是针对chrome和firefox设计的,没有在其他浏览器中测试过。
Google Code上的源代码:http://code.google.com/p/nephotools/source/browse/#svn/trunk/regexpQuery
regexpQuery.js中定义了regexpQue ......

基于对象的JavaScript语言 [4]

JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-
oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复
杂对象统一起来,从而形成一个非常强大的对象系统。
    虽然JavaScript语言是一门基于对象 ......

JavaScript窗口及输入输出 [7]

JavaScript是基于对象的脚本编程语言,那么它的输入输出就是通过对象来完成的。其中有关输入可通
过窗口(Window)对象来完成,而输出可通过文档(document)对象的方法来实现。
一、窗口及输入输出

看下面例子:
<HTML>
<Head>
<script
languaga="JavaScript">
Var test=window. ......

javascript笔记

定义变量
var test=10;
使用对象属性
可以使用 . 操作符获得属性,也可以使用数组下标获得,比如
for(var prop in document)
document.write(document[prop]+"<br>");
With 声明对象,之后再用到对象就不必声明了
with(document){
write("Hello World<br>标题: ");
write(title);
}
常用对象 ......

JavaScript 技巧

事件源对象
event.srcElement.tagName
event.srcElement.type 捕获释放
event.srcElement.setCapture();  
event.srcElement.releaseCapture();  事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey 事件返回值
event.returnValue 鼠标位置
event.x
event.y 窗体 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号