扁平化中文网站模板下载保定中企动力怎么样

张小明 2026/1/13 6:54:57
扁平化中文网站模板下载,保定中企动力怎么样,网站小程序,怎样注册网站中文域名TypedArray 详解一、什么是 TypedArrayTypedArray 是 JavaScript 中处理二进制数据的对象#xff0c;它提供了类似数组的视图来访问原始二进制缓冲区中的数据。核心特点#xff1a;类型化#xff1a;每个元素都有固定的数据类型#xff08;如 Int8、Uint32、Float64 等它提供了类似数组的视图来访问原始二进制缓冲区中的数据。核心特点类型化每个元素都有固定的数据类型如 Int8、Uint32、Float64 等高性能直接操作内存避免了 JavaScript 对象的开销固定长度创建后长度不可变内存高效数据在内存中连续存储二、TypedArray 类型类型字节长度数值范围描述Int8Array1-128 ~ 1278位有符号整数Uint8Array10 ~ 2558位无符号整数Uint8ClampedArray10 ~ 2558位无符号整数限制范围Int16Array2-32768 ~ 3276716位有符号整数Uint16Array20 ~ 6553516位无符号整数Int32Array4-2³¹ ~ 2³¹-132位有符号整数Uint32Array40 ~ 2³²-132位无符号整数Float32Array4±1.2×10⁻³⁸ ~ ±3.4×10³⁸32位浮点数Float64Array8±5.0×10⁻³²⁴ ~ ±1.8×10³⁰⁸64位浮点数BigInt64Array8-2⁶³ ~ 2⁶³-164位有符号大整数BigUint64Array80 ~ 2⁶⁴-164位无符号大整数三、基本使用1.创建 TypedArrayjavascript复制下载// 方式1指定长度元素个数 const int8 new Int8Array(10); // 10个8位整数 const float32 new Float32Array(100); // 100个32位浮点数 // 方式2从普通数组创建 const arr [1, 2, 3, 4, 5]; const int16 new Int16Array(arr); // [1, 2, 3, 4, 5] // 方式3从 ArrayBuffer 创建 const buffer new ArrayBuffer(16); // 16字节的缓冲区 const int32 new Int32Array(buffer); // 4个32位整数4×416字节 const uint8 new Uint8Array(buffer); // 16个8位整数 // 方式4从其他 TypedArray 创建 const source new Float64Array([1.1, 2.2, 3.3]); const copy new Float32Array(source); // 类型转换2.基本操作javascriptconst float64 new Float64Array(5); // 赋值和访问 float64[0] 3.14; float64[1] 2.718; console.log(float64[0]); // 3.14 // 长度属性 console.log(float64.length); // 5元素个数 console.log(float64.byteLength); // 40字节数5×8字节 console.log(float64.BYTES_PER_ELEMENT); // 8每个元素的字节数 // 迭代 for (let value of float64) { console.log(value); } // 使用数组方法大部分Array方法可用 float64.fill(0); // 填充为0 const mapped float64.map(x x * 2); const sum float64.reduce((a, b) a b, 0);四、性能优势1.排序性能对比javascript// 准备测试数据 const size 1000000; const normalArray new Array(size).fill().map(() Math.random()); const typedArray new Float64Array(normalArray); // 测试原生数组排序 console.time(Array sort); const sortedNormal [...normalArray].sort((a, b) a - b); console.timeEnd(Array sort); // ~400-500ms // 测试 TypedArray 排序 console.time(TypedArray sort); const sortedTyped typedArray.slice().sort(); console.timeEnd(TypedArray sort); // ~50-80ms快5-10倍2.数值计算性能javascript// 矩阵乘法示例 function matrixMultiply(A, B, size) { const C new Float64Array(size * size); for (let i 0; i size; i) { for (let k 0; k size; k) { const aik A[i * size k]; for (let j 0; j size; j) { C[i * size j] aik * B[k * size j]; } } } return C; } // 使用 TypedArray 比普通数组快 2-3 倍五、实际应用场景1.WebGL / 图形处理javascript// 顶点缓冲区 const vertices new Float32Array([ // x, y, z -1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 0.0, 1.0, 0.0 ]); // 颜色缓冲区 const colors new Uint8Array([ // r, g, b, a 255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255 ]); // 传递给 WebGL gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);2.音频处理javascript// 音频缓冲区 const audioContext new AudioContext(); const sampleRate 44100; const duration 2; // 2秒 const frameCount sampleRate * duration; // 创建音频数据 const audioBuffer audioContext.createBuffer( 1, // 单声道 frameCount, sampleRate ); // 获取 TypedArray 进行数据处理 const channelData audioBuffer.getChannelData(0); // Float32Array // 生成正弦波 for (let i 0; i frameCount; i) { const time i / sampleRate; channelData[i] Math.sin(2 * Math.PI * 440 * time); // 440Hz A音 }3.图像处理javascript// 处理 Canvas 图像数据 const canvas document.getElementById(canvas); const ctx canvas.getContext(2d); const imageData ctx.getImageData(0, 0, canvas.width, canvas.height); // data 是 Uint8ClampedArray const data imageData.data; // RGBA 格式 // 灰度化处理 for (let i 0; i data.length; i 4) { const avg (data[i] data[i 1] data[i 2]) / 3; data[i] data[i 1] data[i 2] avg; } ctx.putImageData(imageData, 0, 0);4.网络通信 / 文件处理javascript// 从文件读取二进制数据 async function readFileAsTypedArray(file) { const arrayBuffer await file.arrayBuffer(); return new Uint8Array(arrayBuffer); } // WebSocket 二进制数据传输 const socket new WebSocket(ws://example.com); socket.binaryType arraybuffer; socket.onmessage function(event) { const data new Float32Array(event.data); // 处理二进制数据... };六、高级特性1.共享内存的 DataViewjavascriptconst buffer new ArrayBuffer(16); // 使用 DataView 读写不同字节序的数据 const view new DataView(buffer); // 以小端序写入32位整数 view.setInt32(0, 0x12345678, true); // true 表示小端序 // 以大端序读取 const value view.getInt32(0, false); // false 表示大端序2.多个视图共享同一缓冲区javascriptconst buffer new ArrayBuffer(16); // 创建不同视图操作同一内存 const int32View new Int32Array(buffer); const uint8View new Uint8Array(buffer); int32View[0] 0x12345678; console.log(uint8View[0].toString(16)); // 78小端序最低字节 console.log(uint8View[1].toString(16)); // 56 console.log(uint8View[2].toString(16)); // 34 console.log(uint8View[3].toString(16)); // 123.与 Web Workers 共享内存javascript// 主线程 const sharedBuffer new SharedArrayBuffer(1024 * 1024); // 1MB 共享内存 const sharedArray new Int32Array(sharedBuffer); // 传递给 Worker worker.postMessage({ buffer: sharedBuffer }); // Worker 线程中可以直接操作同一内存七、注意事项1.类型限制javascriptconst uint8 new Uint8Array([255]); uint8[0] 256; // 溢出实际存储 0 console.log(uint8[0]); // 0 // Uint8ClampedArray 会限制在 0-255 const clamped new Uint8ClampedArray([255]); clamped[0] 300; // 被限制为 255 console.log(clamped[0]); // 2552.长度不可变javascriptconst arr new Int32Array(3); arr.push(4); // ❌ 错误TypedArray 没有 push 方法 arr.length 5; // ❌ 无效长度不会改变 // 只能创建新的 const newArr new Int32Array([...arr, 4]);3.兼容性所有现代浏览器都支持Node.js 完全支持IE 10 部分支持八、总结TypedArray 的主要优势性能极高- 直接内存操作无 GC 压力内存高效- 紧凑存储无对象开销类型安全- 明确的数据类型硬件加速- 某些操作可使用 SIMD 指令适用场景大规模数值计算图形/音频处理网络协议解析文件格式处理需要高性能排序时不适用场景需要动态改变长度的数组混合类型数据存储简单的数据操作普通数组更简单
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

揭阳网站设计公司网站建设课设总结

微服务基础设施与身份验证服务开发指南 1. 核心基础设施项目开发 核心基础设施项目包含应用程序使用的核心类和组件,其中有通用或基础类、外观类以及其他辅助类。下面将详细介绍该项目中一些关键类和接口的创建。 1.1 创建 BaseEntity 类 BaseEntity 类包含微服务项目中所…

张小明 2025/12/28 11:21:18 网站建设

铁岭做网站的公司广州市建设和水务局网站

B站视频转文字神器:5分钟快速上手指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站学习笔记而头疼吗?想要快速获取视…

张小明 2026/1/11 9:32:10 网站建设

网站建设的外国文献校园网站建设er模型

大模型时代的“高性能磁性元件”:ms-swift 如何重塑 AI 工程底座 在电力电子领域,有一个看似不起眼却至关重要的部件——平板磁性元件。它不像主控芯片那样引人注目,也不像散热系统那样喧宾夺主,但正是这类高度集成、高效稳定的组…

张小明 2025/12/28 8:39:14 网站建设

做服装到哪个网站拿货品质好搭建一个wordpress

隧道作为特殊的交通通道,其内部气象环境与外界差异显著,且对行车安全影响极大。隧道气象站作为专门针对隧道环境设计的气象监测系统,能够实时、精准地捕捉隧道内的关键气象参数,为隧道的安全运营提供重要保障。隧道气象站可监测多…

张小明 2025/12/28 11:21:21 网站建设

php网站是什么数据库文件改变网站的域名

EmotiVoice如何优化长时间语音生成的内存占用? 在有声书、虚拟主播或游戏NPC对话等应用场景中,用户往往需要连续输出数分钟甚至数十分钟的高质量语音。然而,传统文本转语音(TTS)系统在面对长文本时,常因显存…

张小明 2026/1/6 16:24:17 网站建设

建筑公司网站源码开源wordpress rt 15主题

工具链入门指南 1. 工具链概述 工具链是用于构建、检查和修改软件的一组工具。主要组件包括编译器、汇编器和链接器。 - 编译器 :负责解析高级编程语言(如 C)编写的源文件,先将其转换为中间语言,进行程序流分析和优化,最后输出汇编代码。 - 汇编器 :将人类可读的…

张小明 2025/12/31 22:42:16 网站建设