js颜色生成器及性能分析
来源:互联网 发布:数据法则txt下载 编辑:程序博客网 时间:2024/05/29 14:24
js颜色生成器
比较for循环方法和正则匹配截断方法生成颜色(RGB)的效率
工具函数
//DJB算法function genHash (str){ var hash = 5381; str = str || ''; for(var i=0, len=str.length; i<len; ++i){ hash += (hash << 5) + str.charAt(i).charCodeAt(); } return hash & 0x7fffffff;}
//补齐或截取九位长度function cut(num){ return (genHash(num)+ "000000000").slice(0, 9);}
颜色生成器
- 1、for循环方法
//创建RGB颜色function createRGBColor(num){ var uin = cut(num); var rgb = []; for(var i = 0 ; i < uin.length ; i+=3 ){ var rgbnum = uin.substr(i,3) % 255; if(rgbnum < 64) rgbnum += 64; rgb.push(rgbnum); } return 'rgb(' + rgb.join(',') + ')';}
timeline录制耗时
- 1、正则替换方法
function createRGBColor(num){ var colorString = "#" + (cut(num).replace(/(\d{3})/g, function($0) { var c = $0 % 255; if(c < 64) c += 64; return c.toString(16); })); return colorString;}
timeline录制耗时
- 大量计算测试(百万次)
//创建rgb(96,145,215)颜色function createRGBColor(num){ var uin = cut(num); var rgb = []; for(var i = 0 ; i < uin.length ; i+=3 ){ var rgbnum = uin.substr(i,3) % 255; if(rgbnum < 64) rgbnum += 64; rgb.push(rgbnum); } var ret = 'rgb(' + rgb.join(',') + ')' return ret;}//创建#12F5V2颜色function createRGBColorReg(num){ var colorString = "#" + (cut(num).replace(/(\d{3})/g, function($0) { var c = $0 % 255; if(c < 64) c += 64; return c.toString(16); })); return colorString;}var TIMES = 1000;var data = [,,,,,,];//省略,上千数据的数组var startCreateRGBColorReg = function() { var ret = []; console.time("createRGBColorReg"); for(var i = TIMES;i>0; i--) { data.forEach(function(appid){ createRGBColorReg(appid); }); } console.timeEnd("createRGBColorReg"); return 1;};var startCreateRGBColor = function() { var ret = []; console.time("createRGBColor"); for(var i = TIMES;i>0; i--) { data.forEach(function(appid){ createRGBColor(appid); });} console.timeEnd("createRGBColor"); return 1;};var init = function() { startCreateRGBColorReg(); startCreateRGBColor();};init();
测试证明:截断操作使用循环的效率快于正则
0 0
- js颜色生成器及性能分析
- js 颜色生成器 前端工程师工具
- js编程性能分析
- 色彩颜色及可选颜色使用分析
- UE4 性能及分析
- 在线颜色生成器
- PHP颜色随机生成器
- js性能优化及技巧
- JS引入方式及性能
- 性能计数器及性能分析方法
- 程序性能分析及性能测试
- 程序性能分析及性能测试
- 几个ajax js性能优化和内存泄露问题及检测分析工具
- 性能分析原则及步骤
- 软件性能分析及诊断
- 堆排序及性能分析
- UE3 性能、分析及优化
- 性能测试步骤及分析
- 戏(细)说Executor框架线程池任务执行全过程(上)
- qt 信号槽(connect)失效,【多线程使用信号槽】
- UI UIView 新建界面介绍
- [leetcode]326. Power of Three
- C/C++——sizeof和strlen的区别
- js颜色生成器及性能分析
- 静态库
- Objective-C语言——Block块
- Java虚拟机-相关参数
- Web.xml配置详解之context-param
- 【Stanford CNN课程笔记】2. linear classification
- AngularJS学习笔记1
- Presenting the Permanent Generation
- java初始化测试