JScript下Array对象的性能问题(3)
作者:hax 来源:hax的技术部落格 发布时间:2009-02-15 12:28:00
标签:jscript,array,数组,性能,对象
那么为什么我们第二个例子会快一些呢?
这是因为我们的字符串索引是字母"i"开头的,而toUint32的实现,应该会一个字符一个字符的解析,当第一个字母是i时已然可知转换失败,直接返回了。以下是也以JS示意:
function toUint32(s) {
if (s == '') return -1
if (s.charCodeAt(0) == 48 && s.length > 1) return -1
var n = 0, d
for (var i = 0; i < s.length; i++) {
n *= 10
d = s.charCodeAt(i) - 48
if (d < 0 || d > 9) return -1
n += d
if (n >= 0xffffffff) return -1
}
return n
}
你也可以把前面第二段代码中的:
arr['i' + i] = i;
换为
arr[i + '00000000x'] = i
结果就会发现耗费时间更长了,因为toUint32必须解析到最后一个字符才知道转换失败。
【注:这里可以优化,因为uint32十进制最长是10个字符,所以可以先判断string的长度,超过10直接失败——问题是从测试结果来看,JScript实际的实现并没有做此优化】


猜你喜欢
- 求f(x) = sin(x)/x 的不定积分和负无穷到正无穷的定积分sin(x)/x 的不定积分是信号函数sig ,负无穷到正无穷的定积分为
- 本文实例讲述了Python基于FTP模块实现ftp文件上传操作。分享给大家供大家参考,具体如下:#!/usr/bin/python#-*-
- 如果备份的数据库有2个文件,分别是.LDF 和 .MDF,打开企业管理器,在实例上右击---所有任务--附加数据库,然后选择那个.MDF文件
- 前言今天给大家分析3个计算机视觉方向的Python实用代码,主要用到的库有:opencv-pythonnumpypillow要是大家所配置的
- 在caffe中,如果使用的是c++接口,均值文件默认为.binaryproto格式,而如果使用的是python接口,均值文件默认的是nump
- 关于端口扫描器端口扫描工具(Port Scanner)指用于探测服务器或主机开放端口情况的工具。常被计算机管理员用于确认安全策略,同时被攻击
- 最近项目组同事跟我说遇到一个SQL性能问题,他说全表只有69条记录,客户端执行耗费了两分多钟,很不科学。我帮了分析出了原因并得到解决。下面小
- 题目描述:(1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入。用代替密码;或者最新输入显示,前面的变成;安全性措施
- JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的:ty
- 一、基础内容import tkinter as tkfrom PIL import Image,ImageTkdef my():  
- python清空命令行 !有时我们在命令行上运行一些代码时,觉得有些冗余了,可以通过以下代码进行清除命令行上的代码。import osdef
- 日常工作生活中,事情一多,就会忘记一些该做未做的事情。即使有时候把事情记录在了小本本上或者手机、电脑端备忘录上,也总会有查看不及时,导致错过
- 关于SQL Server 2014中的基数估计,官方文档Optimizing Your Query Plans with the SQL S
- 前言centos 是自带python的。但是版本稍微旧一些。搞python开发,肯定要用新一点的稳定版。所以,要升级一下python。本文将
- 1、唠唠叨叨最近项目中需要Python的打包,看到网上也没有很详细的资料,于是做了一些示例程序。小小的研究了一下,Python如何在Wind
- 线程Threading用于提供线程相关的操作。线程是应用程序中工作的最小单元,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程
- 我们在用python进行程序开发的时候,很多时候我们需要检测一下当前的变量的数据类型。比如需要在使用字符串操作函数之前先检测一下当前变量是否
- hmac主要应用在身份验证中,它的使用方法是这样的:1. 客户端发出登录请求(假设是浏览器的GET请求)2. 服务器返回一个随机值,并在会话
- 方法一(常规):代码:count = int(input('输入数据个数:\n'))a = 1while a <= c
- 前言:在生活中工作中,我们经常使用Excel用于储存数据,Tableau等BI程序处理数据并进行可视化。我们也经常使用R、Python编程进