自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(314)
  • 资源 (1)
  • 收藏
  • 关注

原创 WebGL绘制和变换三角形

1111111111111111111111111111111

2024-04-19 16:38:22 16

原创 WebGL入门

WebGL采用HTML5中新引入的元素(标签),它定义了网页上的绘图区域。

2024-04-09 19:39:36 528

原创 WebGL概述

WebGL标准是由科纳斯组织(Khronos Group)开发和维护,该组织还管理着OpenGL、COLLADA等。WebGL的官方描述:WebGL是免授权费的,跨平台的应用程序接口API。它将OpenGL ES 2.0作为在HTML网页内的3D绘图环境,作为低级别文档对象模型接口开放。它使用OpenGL渲染语言GLSL ES,并可整洁地与其他3D内容上层或下层的网页内容捆绑。它是使用JavaScript编程开发语法开发,适合动态3D网页应用的理想工具,并已被主流互联网浏览器集成。

2024-04-02 11:48:25 935

原创 JavaScript中改进的数组功能

ES6标准为数组添加了很多新功能,例如,创建数组的新方法,创建定型数组(Typed Array)的能力等。

2024-03-22 16:37:38 218

原创 JavaScript中的类

instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。

2024-03-21 20:24:51 746

原创 用模块封装代码

模块是自动运行在严格模式下且没有办法退出运行的JavaScript代码。与共享一切架构不同的是:在模块顶部创建的变量不会自动添加到全局共享作用域,这个变量仅在模块的顶级作用域中存在。模块必须导出一些外部代码可以访问的元素,例如变量或函数。模块也可以从其他模块导入绑定。在模块顶部,this的值是undefined;

2024-03-18 11:46:29 368

原创 国产化/windows系统查看配置

在计算机右键属性,可以查看到系统(统信UOS、银河麒麟);CPU(x86兆芯、x86海光、ARM鲲鹏、ARM phytium飞腾、LoongArch龙芯、ALPHA神威)在浏览器中输入:chrome://version或se://version。2、查看NVIDIA显卡详细信息/驱动版本等。可以查看CPU/GPU/操作系统等详细信息。简单看下是A卡、N卡、景嘉微等。方案1:在终端中输入top。方案2:使用系统监视器。

2024-03-15 15:39:04 624

原创 JS中的Promise与异步编程

这个属性不暴露在Promise对象上,所以不能以编程的方式检测Promise的状态,只有当Promise的状态改变时,通过then()方法来采取特定的行动。readFile()方法被调用时,执行器会立刻执行,在执行器中,无论是调用resolve()还是reject(),都会向任务队列中添加一个任务来解决这个Promise。总结:Promise的执行器是同步任务,会立刻执行,而then和catch是异步任务,会添加到任务队列的尾部,异步执行。回调模式中,被调用的函数是作为参数传入的。

2024-03-11 14:45:06 744

原创 JS中的迭代器(Iterator)和生成器(Generator)

深入理解ES6中的第8章。之前用过一次,有些忘记了。

2024-03-07 10:13:37 342

原创 JS中的函数

JavaScript函数有一个特别的地方,无论在函数定义中声明了多少形参,都可以传入任意数量的参数,也可以在定义函数时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时,为其指定一个默认值。在函数的命名参数前添加三个点(...)就表明这是一个不定参数,该参数为一个数组,包含着自它之后传入的所有参数,通过这个数组名即可逐一访问里面的参数。在ES5中,下面的代码会抛出语法错误;JS的函数语法规定,无论函数已定义的命名参数有多少,都不限制调用时传入的实际参数数量,调用时总是可以传入任意数量的参数。

2024-03-05 09:38:50 900

原创 Unicode/ASCII/UTF的关系(模板字面量、模板字符串、占位符)

Unicode是ASCII字符编码的一个扩展,只不过在Windows中,用两个字节对其进行编码,也称为宽字符集(WideChars)。Unicode字符串有多种编码方式,常见的有UTF-8、UTF-16、UTF-32等,这些编码方式定义了如何将Unicode码点映射到字节序列。Unicode是一个更为全面和通用的字符编码标准,允许表示世界上所有语言的字符。ASCII主要是用于英文,是Unicode的一个子集,Unicode的引入解决了多语言环境中字符编码的问题。

2024-02-28 15:58:40 1091

原创 JS中的块级作用域(var/let/const)

当前使用块级绑定的最佳实践是:默认使用const,只在确实需要改变变量时使用let。这样就可以在某种程度上实现代码的不可变,从而防止某些错误的产生。

2024-02-27 15:12:30 861

原创 浏览器内存泄漏排查指南

使用setInterval/setTimeOut遇到的坑 - 掘金

2024-01-30 16:28:55 657

原创 C++调JS上层的4种方法

【代码】C++调JS上层的4种方法。

2024-01-25 15:23:30 443

原创 ubuntu/国产化开发技巧总结

2、不建议用cp的方式代替ln-s的方式。12. watch gdb的观察点(断点是当程序执行到某一代码行时中断,而观察点是当程序访问某个存储单元时中断,如果我们不知道某个存储单元是在哪里被改动的,这时候观察点尤其有用)例如:watch b (程序执行到b存储单元,将此执行单元执行前后的值都显示出来)1. g++ hello.c -fPIC -c -o hello.o //-c只编译(生成中间同名目标文件,不链接)-o指定输出文件名,该文件为可执行文件,不加-o会默认生成.out。

2024-01-16 14:42:36 1065

原创 编译器相关原理

2、

2023-12-26 10:07:03 368

原创 JavaScript和C/C++对比

傻傻分不清:JIT编译器,解释器,AOT编译器-腾讯云开发者社区-腾讯云V8引擎介绍:详解 Chrome 「V8 」引擎,让你更懂JavaScript ! - 知乎

2023-12-19 20:42:54 397

原创 C++性能优化-内存拷贝操作

如果要复制的数据很大,比如说需要复制 1GB 的数据,那么 CPU 就需要从源内存地址中读取 1GB 的数据,并将数据写入到目标内存地址中,这个过程中会占用一定的 CPU 时间和带宽。C++ 中的内存拷贝是一种常见的操作,但是如果内存拷贝的数据较大或者频率较高,会导致性能下降。使用基于 DMA(直接内存访问) 的内存拷贝技术,将内存拷贝的处理交给硬件设备,减少 CPU 的参与,提高拷贝效率。总之,合理的内存拷贝方式可以有效提高程序的性能,减少 CPU 的负担,提高用户体验。

2023-12-15 16:14:05 584

原创 WebAssembly如何获得安全性

然后框架访问内存,并代表代码执行这个项目。在C++中,执行栈与线性内存一起位于内存中,虽然C++代码不应该修改执行栈,但是它可以使用指针实现修改。WebAssembly的执行栈与线性内存是分离的,代码无法访问。WebAssembly是第一个共享JavaScript VM的语言,而JavaScript VM在运行时是沙箱化的,同时经历了多年的检验和安全测试,确保了其安全性。WebAssembly模块的可访问范围不超过JavaScript的访问范围,同时也会遵守相同的安全性规则,包括同源策略这样的增强规则。

2023-12-14 19:24:09 438

原创 现代浏览器提供的多媒体相关的API

MediaStreamTrackProcessor 接口是 MediaStreamTrack API 的一个扩展,使用 MediaStreamTrackProcessor,可以轻松地对音视频流数据进行修改、过滤、处理等操作。方法返回一个 promise,该promise可以暂停代码执行,直到用户选择文件并执行操作。是 WebAPI 中的一个方法,可用于显示本地文件保存框,让用户保存一个文件。该方法可以在不需要服务器干预的情况下,向本地系统写入文件,同时保留浏览器的独立性。在非安全上下文中调用此方法会抛出。

2023-11-23 15:47:17 266

原创 音频基础知识

编码后的音频,解析->解码->渲染数据采集(采样率:G711A(8-bit A-Law Compressed)默认8k)

2023-11-23 15:17:31 251

翻译 Canvas2D

在着色器、网格和滤镜的世界中,Canvas2D 可能不会让您兴奋。不可否认,在最先进的 2D 绘图方面,API 有点落后于时代。幸运的是,我们一直在努力在 Canvas2D 中实现新功能,以赶上 CSS、简化人体工程学并提高性能。

2023-11-17 17:16:35 111

翻译 从WebGL到WebGPU

1、Chrome和safari最多同时使用16个WebGL画布,Firefox最多可创建200个,而WebGPU画布没有限制。2、WebGPU可以共享纹理,将 GPUDevice 对象输出到任意数量的画布。

2023-11-16 14:52:35 275

原创 git常用命令

【代码】git常用命令。

2023-11-02 10:22:06 84

原创 WebGPU入门一

WebGPU的环境配置比较简单,不需要vite或webpack配置一个复杂的开发环境,直接使用.html文件即可。

2023-10-16 14:31:46 349 1

原创 多线程入门

下面的程序,我们可以用它来创建一个在这里,创建一个新的,并让它可执行。

2023-10-12 14:05:28 212

原创 WebAssembly

WABT是一个Wasm二进制工具箱(WebAssembly Binary Toolkit),提供了很多处理Wasm二进制格式的工具,包括WAT汇编器wat2wasm、反汇编器wasm2wat、Wasm二进制格式查看工具wasm-objdump、二进制格式验证工具wasm-validate等。使用汇编器可以把文本格式编译成二进制格式,使用反汇编器可以把二进制格式反编译成文本格式。二进制格式是Wasm模块的主要编码格式,存储为文件时,一般以.wasm为后缀。可以由开发者直接编写,也可以由二进制格式反编译生成。

2023-09-25 10:17:16 109 1

转载 C/C++中的内存对齐

第二个结构体中变量i占用内存最大占4字节,而有效对齐单位也为4字节,两者较小值就是4字节。因此整体也是按照4字节对齐。由规则1得到s2占9个字节,此处再按照规则2进行整体的4字节对齐,所以整个结构体占用12个字节。3.编译器可以设置一个最大对齐值,怎么类型的实际对齐值是该类型的对齐值与默认对齐值取最小值得来。1.基本类型的对齐值就是其sizeof值;2.结构体的对齐值是其成员的最大对齐值;相对于结构体首地址的偏移要为4的倍数。

2023-03-27 14:43:35 205 1

原创 如何快速统计一个文件夹中的文件名

2、在txt文件中输入 DIR *.*/B>LIST.TXT (DIR命令后须有一空格)4、双击该文件即可生成。运行结构在LIST.TXT文件中。1、在该文件夹中新建txt文件。3、保存后将后缀名改为BAT。

2023-03-21 11:30:53 1603

原创 C中字符串操作

字符串分割split:strtok()

2023-03-21 11:26:40 125

原创 mpegts开源项目预研

package-lock.json 的作用是锁定依赖结构,即只要你目录下有 package-lock.json 文件,那么你每次执行 npm install 后生成的 node_modules 目录结构一定是完全相同的。使用建议: 开发系统应用时,建议把 package-lock.json 文件提交到代码版本仓库,从而保证所有团队开发者以及 CI 环节可以在执行 npm install 时安装的依赖版本都是一致的。npm 的版本更新,解决了旧版本中node_mudules。

2023-03-13 10:01:46 479

原创 webworker(DedicatedWorker, SharedWorker, )

你所要做的就是调用 Worker() 构造函数,指定一个要在 worker 线程内运行的脚本的 URI,如果你希望能够收到 worker 的通知,可以将 worker 的 onmessage 属性设置成一个特定的事件处理函数。worker应该访问此事件的ports属性来提取一个稳定的通信端口回浏览器,并在worker的生命周期内持久化它。和现有的HTML5数据缓存功能有很大的不同,service worker的离线能力是可编程的。一个普通的web worker只能被创建它的页面访问。

2023-03-09 19:31:51 697

原创 SharedArrayBuffer和Atomics

Web 技术继续向前演进的其中一个使命: 让大型游戏引擎和3A 游戏在 Web 上运行,在技术上成为可能。WebAssembly,OffscreenCanvas,SharedArrayBuffer 等技术的发展使其逐渐成为可能。

2023-03-07 16:36:33 579

原创 eBPF(内核态)和WebAssembly

无需修改内核,也不用加载内核模块,程序员就可以在内核中执行执行自定义的字节码。eBPF,它的全称是“Extended Berkeley Packet Filter”, 网络数据包过滤模块。我们很熟悉的tcpdump工具,它就是利用了 BPF 的技术来抓取Unix 操作系统节点上的网络包。Linux 系统中也沿用了 BPF 的技术。

2023-03-06 14:23:00 440

原创 phpStudy服务

1. 安装路径不能包含“中文”或者“空格”,否则会报错(例如错误提示:Can't change dir to 'G:\\x65b0\x5efa\x6587\)保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装,请选择其它路径。

2023-02-17 14:28:28 431

原创 微信小程序读取二进制文件

开发工具右上角的详情–>基本信息–>文件系统–>当前小程序文件系统根目录。拿到ArrayBuffer二进制数据文件。将二进制数据文件放在文件系统目录下。

2023-02-06 16:14:19 1149

原创 微信小程序

小程序开发

2023-02-03 16:29:29 730

原创 WebGL

效果较差:较于桌面开发API:Direct3D、OpenGL、UE、Unity。开发成本:熟悉并掌握一定的数据知识,例如:线性代数。硬件要求:开发及部署系统硬件要求较高,尤其GPU。

2022-12-28 19:13:01 2075 4

原创 MSE和Video标签的关系

拥有解封装和解码功能的浏览器自带播放器随着视频点播、直播等视频业务的发展,视频通过流媒体传输协议(目前常用的有两种,MPEG-DASH和Apple的HLS)从服务器端分发给客户端,媒体内容进一步包含在一层传输协议中,这样就无法识别了。以HLS为例,将源文件内容分散地封装到了一个个TS文件中。仅靠标签无法识别这样的TS文件,那么就引入了MSE拓展来帮助浏览器识别并处理TS文件,将其变回原来可识别的媒体容器格式,这样就可以识别并播放原来的文件了。

2022-11-29 15:50:58 1256

原创 远程重启电脑

三、使用本地计算机上的命令行重新启动远程计算机。添加完后,选择要重启的原因,点击确定即可。在远程计算机上编辑设置远程注册表。您可以添加要重新启动的计算机。

2022-11-22 15:00:48 3083

Video File Format Specification V10

Video File Format Specification V10

2022-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除