当前位置:网站首页>jsArray数组复制方法性能测试2207292307
jsArray数组复制方法性能测试2207292307
2022-07-30 12:56:00 【kfepiza】
jsArray数组复制方法性能测试2207292307
测试在eval中的速度
测试代码
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"/><title></title><style> body{
margin:0} #BodyH{
display:flex; align-items:center; justify-content:flex-start; background-image:linear-gradient(to right, red, orange, yellow, green, cyan, blue, purple);} </style><script> if(!document.title.length)(function(){
var str=document.URL; str=str.substring( str.lastIndexOf("/")+1 , str.lastIndexOf('.')); str=decodeURI(str); document.title=str;})(); let isLog=true;clog=function(){
if(isLog)for(let a of arguments)console.log(a);}; n09="0123456789"; lAZ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; laz="abcdefghijklmnopqrstuvwxyz"; Z62=n09+lAZ+laz; Z62o={
};for(let i=0;i<Z62.length;i++)Z62o[Z62[i]]=i; const CTTT="Content-type"; rdmN=(u)=>parseInt(Math.random()*u); rdmV=(sa)=>sa[rdmN(sa.length)]; rdmS=(l=1,sample=Z62)=>{
let s='';for(let i=0;i<l;i++)s+=rdmV(sample);return s;}; z62=z62l=(l)=>rdmS(l); decFrZ62=(z)=>{
let a=Array.from(z).reverse(); let i=0; for(let j=0;j<a.length;j++)i+=Z62o[a[j]]*Math.pow(62,j);return i;}; z62Now=()=>{
let l=Date.now(),a=[]; while(l>62){
a.push(Z62[l%62]);l=parseInt(l/62);};a.push(Z62[l]);return a.reverse().join('');}; z62Id=(l)=>{
let s=z62Now(); if(l&&l>6){
l-=6;s+=z62(l);}return s;}; rdmRgb=()=>'rgb('+rdmN(256)+','+rdmN(256)+','+rdmN(256)+')'; rdmBgc=()=>"background-color:"+rdmRgb()+";"; isA=(x)=>x&&x.constructor===Array,isS=(x)=>x&&x.constructor===String,isF=(x)=>x&&x.constructor===Function,isO=(x)=>x&&x.constructor===Object,isJ=(x)=>isA(x)||isO(x),isM=(x)=>x&&x.constructor===Map; isE=(x,tn)=>{
let b=(x&&x instanceof HTMLElement); if(b&&tn)b=(x.tagName===tn.toUpperCase()); return b;}; isColl=(x)=>x&&isFinite(x.length)&&x.constructor!==String; isEnterEvent=(ev)=>ev&&(ev.which===13&&ev.keyCode===13&&ev.key==="Enter"&&ev.code==="Enter"); triggee=triggerElementEvent=触发元素的事件=(e,evn)=>{
e=dgebi(e);e.dispatchEvent(new Event(evn)); return e;}; z24ParseInt=(s)=>{
let ar=Array.from(s); let ar1=ar.filter((v)=>isFinite(v)); return parseInt(ar1.join(''));}; stringSeparator=(str,ss,hf)=>{
if(!ss||ss.length===0)return str; let ar=str.split(ss.shift()); if(isF(hf))hf(ar); ar=ar.map((s)=>stringSeparator(s,ss.slice())); return ar;}; //ge //dgebi const ge=window.dgebi=function(i,s){
if(!i)return;let e=i;if(isS(i)){
e=document.getElementById(i);if(!e)e=document.querySelector(i);} if(!s)return e; s=ge(s); if(isE(e)&&isE(s))e.appendChild(e.新娃=e.xw=s);else{
clog("↓↓↓",e,"父或子不是Element",s,"↑↑↑");}return e;}; dce=window.dcept=(p,tn="DIV")=>{
let e=document.createElement(tn);e.idefine=(i)=>{
e.id=i;return window[i]=e;};e.htm=(h)=>{
if(h!==undefined)e.innerHTML=h;return e;}; e.ass=e.aCssText=(s)=>{
if(s)e.style.cssText+=";"+s;return e;};e.cls=(c)=>{
if(c!==undefined)e.className+=" "+c;return e;}; e.ce=(a0,c2,h2)=>{
let ar; if(isS(a0))ar=a0.split("=->");else ar=a0; let t=ar[0].replace(/\s/g,''),h=ar[1],ct=ar[2],c=ar[3]; e.ceLast=dcept(e,t).htm(h).htm(h2).aCssText(ct).cls(c).cls(c2); if(isS(ar[4]))eval("const P=e,I=e.ceLast;"+ar[4]); return e.ceLast}; e.ca=(a0,c,h)=>{
e.ce(a0,c,h);return e}; e.cen=function(a0, n=1, c, f) {
e.cenAr=[];let ar;if(isS(a0))ar=a0.split('\n');else ar=a0; for(let t=0;t<n;t++)for(let tn of ar){
let s=e.ce(tn).cls(c); if(f)f(s,e, e.cenAr); e.cenAr.push(s)};return e;}; e.cbn=function(a0,n0=1,n1=1,c0,c1,f0,f1) {
let ar;if(isS(a0))ar=a0.split('\n');else ar=a0; let pt=ar.shift(); e.cen(pt,n0,c0,f0); for(let b of e.cenAr){
b.cen(ar,n1,c1,f1);} return e;}; e.rdmBgc=function(){
e.style.backgroundColor=rdmRgb();return e;}; dgebi(p,e);return e;}; window.dceptq=function(p,t,q=1){
let ear=Array(q); for(let n=0;n<q;q++){
ear.push(dcept(p,t));} return ear;}; dceptc=(p,t,c)=>dcept(p,t).cls(c); dcDiv=(p,c)=>dceptc(p,"div",c); dcArticle=(p,c)=>dceptc(p,"article",c); dcSection=(p,c)=>dceptc(p,"section",c); dcFL=(p,lh,c)=>{
let f=dcept(p,"fieldset").cls(c); f.l=dcept(f,"legend").htm(lh); return f;}; evalab=(p,code)=>dcept(p,"label").cls("evalab").cen("span=->"+code+"=->=->evalabL , span=->的结果是=->=->evalabC , span=->"+eval(code)+"=->=->evalabR"); window.dwbr=function(a0=1){
let ar=arguments,br=dwbr.br; if(Number.isFinite(a0)){
br(a0);return;} for(let a of ar)document.write(a.replace(/\n/g,"<br/>"));br();}; dwbr.br=function(n=1){
for(let c=0;c<n;c++)document.write("<br/>");}; window.simpleTableByA2=(p,a2)=>{
let tb=dcept(p,"table").cen(['thead','tbody','tfoot']);tb.h=tb.tHead;let tbd=tb.b=tb.tBody=tb.tBodies[0]; tb.f=tb.tFoot; tb.Ntr=dcept(tb.h,"tr","Ntr"); let ar=a2.shift(); ar.forEach((v)=>dce(tb.Ntr,"th").htm(v)); a2.forEach((row,r)=>{
let tr=dcept(tbd,"tr");row.forEach((v,c)=>{
let td=dce(tr,"td").htm(v).cls("R"+r+"C"+c);});});return tb;}; </script>
</head><body><header id="BodyH">
<label></label><script>{
let s=document.currentScript; let l=s.previousElementSibling; if(!l.innerHTML.length)l.textContent=document.title}</script>
</header><div id="BodyB">
</div><script>const BodyH=dgebi("BodyH") , BodyB=dgebi("BodyB") ; dce(document.body).idefine("BodyF"); dce(BodyB).idefine("BBB");</script>
<script>{
}</script><style> *{
box-sizing:border-box;} table{
border-collapse:collapse;} thead {
color:white; background:#331100; } tbody{
background:#eeeef9; } tbody>:nth-child(2n){
background:#ffeedd; } th,td {
border:1px solid black; } </style><script>{
const SrcArray = [1,2,3,'4','5','6','七','八','九',[1,2,3],{
a:"a",b:"b"},window,document,parseInt,Number,String,Array,Object,Function,document.html,document.body]; let ExeCount = 1000 let tbA2=[['方法','执行次数','用时毫秒']]; function f1(methodStr ){
let beginning = Date.now(); for(let c=0;c<ExeCount;c++){
eval(methodStr); } let t1=Date.now(); let cost = t1-beginning; let temp=[ methodStr.replaceAll("<","<") , ExeCount , cost ]; tbA2.push(temp); } f1(` SrcArray.concat(); `); f1(` SrcArray.slice(); `); f1(` [...SrcArray]; `); f1(` Array.from(SrcArray); `); f1(` for(let c=0; c<ExeCount; c++){ let replica = []; for(let i=0; i<SrcArray.length; i++){ replica.push(SrcArray[i]); } } `); f1(` for(let c=0; c<ExeCount; c++){ let replica = []; for(let v of SrcArray){ replica.push(v); } } `); f1(` for(let c=0; c<ExeCount; c++){ let replica = []; for(let i=0; i<SrcArray.length; i++){ replica.push(SrcArray[i]); } } `); simpleTableByA2(BBB,tbA2); }</script><script>{
}</script></body></html>
1000次
2000次
3000次

| 方法 | 执行次数 | 用时毫秒 |
|---|---|---|
| SrcArray.concat(); | 3000 | 1 |
| SrcArray.slice(); | 3000 | 1 |
| [...SrcArray]; | 3000 | 1 |
| Array.from(SrcArray); | 3000 | 2 |
| for(let c=0; c<ExeCount; c++){ let replica = []; for(let i=0; i<SrcArray.length; i++){ replica.push(SrcArray[i]); } } | 3000 | 2733 |
| for(let c=0; c<ExeCount; c++){ let replica = []; for(let v of SrcArray){ replica.push(v); } } | 3000 | 819 |
| for(let c=0; c<ExeCount; c++){ let replica = []; for(let i=0; i<SrcArray.length; i++){ replica.push(SrcArray[i]); } } | 3000 | 2679 |
边栏推荐
- R语言时间序列数据算术运算:使用log函数将时间序列数据的数值对数化(平方、开平方、指数化等函数类似使用)
- 机器学习——特征选择
- 物理服务器与虚拟机:主要区别和相似之处
- 湖仓一体电商项目(一):项目背景和架构介绍
- How to solve the problem that the page does not display the channel configuration after the EasyNVR is updated to (V5.3.0)?
- 【软考软件评测师】自动化测试章节下篇
- 【微信小程序】一文带你搞懂小程序的页面配置和网络数据请求
- Mysql索引结构
- WinForm枚举容器中的控件,实现控件统一事件处理机制
- 13-GuliMall Basics Summary
猜你喜欢
随机推荐
Dry Goods Sharing: Various Implementation Methods of Bean Management Factory with Great Use of Small Skills
无人艇轨迹跟踪的预设性能抗扰控制研究
Parallelized Quick Sort Ideas
Mysql batch insert transaction unique key repeated processing
大手笔!两所“双一流”大学,获75亿元重点支持!
第十三天笔记
EasyNVR更新版本至(V5.3.0)后页面不显示通道配置该如何解决?
自从外包干了四年,基本废了...
Using Baidu EasyDL to realize the recognition of the chef's hat of the bright kitchen
当下,产业园区发展面临的十大问题
什么是私有云?您应该知道的 6 个优势
datax开启hana支持以及dolphinscheduler开启datax任务
Apache Log4j2漏洞
EasyNVS云管理平台功能重构:支持新增用户、修改信息等
一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?
【河北工业大学】考研初试复试资料分享
MySQL查询性能优化
【软考软件评测师】自动化测试章节下篇
R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用ggpar函数改变图形化参数(ylim、修改可视化图像y轴坐标轴数值范围)
13-GuliMall Basics Summary









