当前位置:首页 > 科技  > 软件

开 1000 个 Web Worker!我的页面能起飞吗?

来源: 责编: 时间:2024-05-29 17:32:06 242观看
导读背景最近看到一个很有趣的问题:页面中 Web Worker 数量是不是越多越好?如果设置 1000个,那岂不是无敌了?为此我们先准备一段代码,这段代码是计算一下从0累计到1亿,需要花费多少时间。图片图片可以发现需要耗费很久的时间,总

背景

最近看到一个很有趣的问题:页面中 Web Worker 数量是不是越多越好?如果设置 1000个,那岂不是无敌了?95d28资讯网——每日最新资讯28at.com

为此我们先准备一段代码,这段代码是计算一下从0累计到1亿,需要花费多少时间。95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

可以发现需要耗费很久的时间,总共 43s,并且在这段时间内,主线程会被堵塞,后续的代码都执行不了,所以一般这种耗时的操作可以放在 WebWorker 中去分担主线程的工作。95d28资讯网——每日最新资讯28at.com

使用 WebWorker

刚刚我们直接在主线程中去做累加的操作,是非常费时的,我们试试在 WebWorker 中去做,我们先准备一个 worker.js。95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

并且在 index.js 中去引入并创建 WebWorker 实例,我们先来试试一个实例,耗时多少?95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

可以发现时间大大缩短!!!只需要 4.9s!!!95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

那既然这样的话!!!是不是我们使用更多的 WebWorker 实例去分担工作,耗时就越短呢?95d28资讯网——每日最新资讯28at.com

于是我开始增加 WebWorker 实例的数量。95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

从 1 开始加,发现总耗时确实越来越低了,但是当实例数量超过 16 个后,发现总耗时就没有下降过了!!!95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

原因其实很简单,因为线程的并行需要依赖于CPU的核数。我查看了一下我电脑的核心数,我的电脑是 16 核的。95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

也可以使用 navigator.hardwareConcurrency 这个 API 来看本电脑的核心数。95d28资讯网——每日最新资讯28at.com

图片图片95d28资讯网——每日最新资讯28at.com

总结

所以总结就是:WebWorker 是越多越好,但是也有上限,上限取决于你 CPU 的 核心数。95d28资讯网——每日最新资讯28at.com

所以你如果想尽量多地使用 WebWorker 来分担工作,可以将数量设置为你的电脑的 CPU 核心数。95d28资讯网——每日最新资讯28at.com

图片 图片 95d28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-91532-0.html开 1000 个 Web Worker!我的页面能起飞吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 一个 Python 对象会在何时被销毁?

下一篇: Spring 中如何控制 Bean 的加载顺序?

标签:
  • 热门焦点
  • 8月总票房已突破10亿!《封神》第一:口碑已经成了

    8月5日消息,据灯塔专业版数据,截至8月5日9时35分,8月总票房(含预售)已突破10亿。其中,《封神》以大比分的优势领先。根据官方消息,目前该片总票房已经超过14.
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 网红炒股不为了赚钱,那就是耍流氓!

    来源:首席商业评论6月26日高调宣布入市,网络名嘴大v胡锡进居然进军了股市。在一次财经媒体峰会上,几个财经圈媒体大佬就“胡锡进炒股是否知道认真报道”展开讨论。有
  • 三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    7月27日消息,据外媒报道,从三星电子所发布的财报来看,他们主要利润来源的存储芯片业务在今年二季度仍不乐观,营收同比仍在大幅下滑,所在的设备解决方案
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
Top