//多线程,使用多线程处理会导致内存飙升,最终导致页面崩溃
function removeColor() {var offScreenCanvas = offScreenContext.canvas;removeColorWorker.postMessage(offScreenContext.getImageData(0, 0, offScreenCanvas.width, offScreenCanvas.height));//报错在此行removeColorWorker.onmessage = receiveFromWorker;
}function receiveFromWorker(e){offScreenContext.putImageData(event.data, 0, 0);mContext.drawImage(offScreenContext.canvas, 0, 0);requestNextAnimationFrame(onNextFrame);
}
//单线程,同样会占用大量内存,有时候可能会崩溃
function removeColor(){var imageData  = offScreenContext.getImageData(0,0,offScreenContext.canvas.width,offScreenContext.canvas.height),//报错在此行data = imageData.data,length = data.length;for(var i=0;i<length-4;i+=4){var average = (data[i]+data[i+1]+data[i+2])/3;data[i]= average;data[i+1] = average;data[i+2] = average;}offScreenContext.putImageData(imageData,0,0);
}

正在寻求好的解决方式

此外还有一个问题,就是视频播放完毕之后,程序占用的内存并不会得到释放,证明仍然是离屏canvas在占据内存空间,得处理一下

转载于:https://www.cnblogs.com/gangmiangongjue/articles/5896614.html

H5 的getImageData造成的大量内存开销相关推荐

  1. 漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!

    实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态.在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你! 实验1:ESTABLISH空连接 ...

  2. 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法

    文章目录 概述 官方说明 precision_threshold优化准确率和内存开销 HyperLogLog++ (HLL)算法性能优化 概述 继续跟中华石杉老师学习ES,第47篇 课程地址: htt ...

  3. 分块查询 缓解内存开销

    分块查询是为查询大量数据的需要而设计的,假如think_data表已经有超过1万条记录,但是一次性取那么大的数据会导致内存开销非常之大,但确实又有这个需要(例如查询所有的数据并导出到excel),采用 ...

  4. ElasticSearch cardinality基数 算法优化内存开销及HLL算法

    2019独角兽企业重金招聘Python工程师标准>>> cardinality 可用于聚合函数,可计算某个字段的基数,即该字段的distinct值,它基于HLL算法来实现的.HHL会 ...

  5. Android 查看第三方应用进程的内存开销

    如何查看第三方应用进程的内存开销,举个例子:打开QQ小游戏,想知道QQ小游戏进程占用的内存大小,但我们不知道QQ小游戏的包名或者进程ID, 如何操作呢? 1)adb shell 2)top top命令 ...

  6. 49深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法

    cardinality=count(distinct),5%的错误率,性能在100ms左右,如何对cardinality进行优化呢? 1.precision_threshold优化准确率和内存开销 G ...

  7. ElasticSearch教程——cardinality(去重)算法之优化内存开销以及HLL算法

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 说明,一般使用第一种和第二种方法,很少使用第三种HLL优化(效果不是特别明显) 1.cardinality语法 es,去 ...

  8. 49.ardinality算法之优化内存开销以及HLL算法

    主要知识点 precision_threshold参数的理解 HLL算法优化(hash) cardinality,count(distinct),5%的错误率,性能在100ms左右 一.precisi ...

  9. Redis - String内存开销问题以及基本/扩展数据类型的使用

    Redis - String内存开销问题以及基本/扩展数据类型的使用 一. String 类型内存开销问题 1.1 SDS 结构 1.2 RedisObject 结构 1.3 String 类型的内存 ...

最新文章

  1. cve-2016-6664 mysql本地提权
  2. How To Open An URL In Android’s Web Browser
  3. 如何杀掉D状态的进程?[zt]【转】
  4. java web如何使用aws,amazon-web-services - 使用java Jedis连接到aws elasticache redis
  5. 全世界最顶级的开发者都在使用什么数据库
  6. 最容易进的大厂工作,百度经典百题
  7. HDU 5970 CCPC2016合肥 求等差数列整除整数下取整求和
  8. 在线文档转word文档
  9. 杭州电子科技大学计算机非全日制,杭州电子科技大学非全日制研究生考试难吗?...
  10. 如何进行邮件营销,邮件营销群发是否有效?
  11. LabVIEW在无线设备中的应用
  12. Powershell-批量重命名替换文件名
  13. 基于微信小程序的健身小助手小程序
  14. 告别Ubuntu,与Win 10闹别扭
  15. 一招恢复删除的微信好友
  16. 理解字节填充和零比特填充
  17. 在MAC下,使用anaconda,解决python画图时中文乱码
  18. 声音放大器-系统软件下载
  19. java招投标管理系统的区别_招投标管理系统的特点和系统价值表现是怎么?
  20. Matlab学生账号申请

热门文章

  1. 安装mariadb以及允许远程访问
  2. ActiveMQ消息传送机制以及ACK机制详解
  3. 关于Element学习笔记
  4. iOS开发之 [NSNull length]:unrecognized selector sent
  5. mycncart操作使用教程 - 横幅广告
  6. css实现透明度(兼容IE6、火狐等)
  7. vmware智能资源调整
  8. 九、BDB OneToMany
  9. linux自动定时运行的脚本编写
  10. listview刷新,延迟加载,用单行刷新取代notifyDataSetChanged