浏览器worker与系统进程和线程的关系&效率转换

本文通过一系列实验验证了浏览器worker与系统进程、线程的关系。一个浏览器worker对应一个浏览器tab进程下的一个线程,并能充分利用系统CPU资源。随着worker数量增加,计算效率并非成倍提升,而是呈logN形式递减。worker内部再开worker不影响这一关系。
摘要由CSDN通过智能技术生成

背景

最近在研究web 前端 Webassembly加速。但是对于webassembly多线程与浏览器的配合方式不慎了解,故本期先从webassembly的载体–worker开始验证,我们知道一个worker对应一个线程,那么一个worker是否与系统的线程也是一一对应?系统分配给浏览器的资源是否是有限制的?为了验证这一点,我们开展了如下实验;

准备工作

1、环境准备

项目 Value
操作系统 64 位操作系 win10
cpu 12 核 i7 8700
内存 32G
浏览器 谷歌 76.0

2、工具准备

1.1 浏览器任务管理器 (shift+esc)

在一个标签页内,随意打开一个页面,按下shift+esc可以查看标签页所占用的系统资源:

在这里插入图片描述

1.2 windows系统资源监视器
  • 打开系统任务管理器(ctrl+shift+esc)
  • 打开性能标签页
  • 左下角打开资源监视器

在这里插入图片描述
可以看到,这里有运行的计算机的所有进程ID,以及进程下的线程数和进程占用的cpu。

我们打开的标签页,在浏览器任务管理器中有一个进程ID,在资源管理器里找到这个进程ID,选中它,就会置顶方便我们查看;

3、浏览器进程线程知识储备

4、demo代码准备

步骤

创建index.html,挂载IIS;

!DOCTYPE html>
<html lang="en">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>worker demo</title>
    <script type="text/javascript" src = "./main.js"></script>
</head>

<body class="home-page">
    <button onclick="createWorker()">创建worker</button>
</body>

</html>

验证一、单worker 高计算量对cpu占用情况

代码
const createWorker = ()
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值