- 博客(86)
- 收藏
- 关注
原创 计算机系列之输入输出、中断、总线、可靠性、操作系统、进程管理、同步互斥
计算机系列之输入输出、中断、总线、可靠性、操作系统、进程管理、同步互斥
2024-04-26 08:41:18 902 3
原创 Web 前端性能优化之四:书写高性能代码
当我们创建一个异步任务时,它其实并没有马上执行,而是被JavaScript引擎放置到了一个队列中,当执行完成一个任务脚本后,JavaScript引擎便会挂起让浏览器去做其他工作,比如更新页面,当页面更新完成后,JavaScript引擎便会查看此异步队列,并从中取出一个任务脚本去执行,只要该队列不为空,这个过程便会不断重复,当队列中的任务脚本执行完后,JavaScript引擎便处于空闲状态,直到有新的任务脚本进入该异步队列。这也就是说,匹配最后一个条件的情况,会比之前所有判断条件执行耗时都久。
2024-04-02 12:57:44 890
原创 湖仓一体架构理论与实践汇总
软件研发本质上属于“手工业”。软件研发在很大程度上还是依赖于个人的能力。当软件规模较小时,依赖“手工业”可以解决问题,但是当软件规模大了之后再依赖“手工业”就不行了。软件的复杂度包含两个层面:软件系统层面的复杂度和软件研发流程层面的复杂度。对于大型软件来讲,复杂才是常态,不复杂才不正常。软件系统很难一开始就做出完美的设计,只能通过功能模块的衍生迭代让软件系统逐步成型,然后随着需求的增加再让功能模块进行衍生迭代,因此本质上软件是一点点生长出来的,其间就伴随着复杂度的不断累积。
2023-12-13 21:27:13 1376
原创 数据结构与算法-Rust 版读书笔记-2线性数据结构-双端队列
deque又称为双端队列,双端队列是与队列类似的项的有序集合。deque有两个端部:首端和尾端。deque不同于队列的地方就在于项的添加和删除是不受限制的,既可以从首尾两端添加项,也可以从首尾两端移除项。在某种意义上,这种混合线性结构提供了栈和队列的所有功能。虽然deque拥有栈和队列的许多特性,但其不需要像它们一样强制地进行LIFO和FIFO排序,这取决于如何添加和删除数据。
2023-12-11 22:28:39 174 1
原创 数据结构与算法-Rust 版读书笔记-2线性数据结构-队列
队列是项的有序集合,其中,添加新项的一端称为队尾,移除项的另一端称为队首。一个元素在从队尾进入队列后,就会一直向队首移动,直到它成为下一个需要移除的元素为止。
2023-12-11 22:03:52 180
原创 数据结构与算法-Rust 版读书笔记-2线性数据结构-栈
数组、栈、队列、双端队列、链表这类数据结构都是保存数据的容器,数据项之间的顺序由添加或删除时的顺序决定,数据项一旦被添加,其相对于前后元素就会一直保持位置不变,诸如此类的数据结构被称为线性数据结构。线性数据结构有两端,称为“左”和“右”,在某些情况下也称为“前”和“后”,当然也可以称为顶部和底部,名称不重要,重要的是这种命名展现出的位置关系表明了数据的组织方式是线性的。这种线性特性和内存紧密相关,因为内存就是一种线性硬件,由此也可以看出软件和硬件是如何关联在一起的。
2023-12-11 21:28:41 205
原创 数据结构与算法-Rust 版读书笔记-1语言入门
Rust中并不存在内置库函数,一切都需要自己定义。但是Rust实现了一套高效的宏,包括声明宏、过程宏,利用宏能完成非常多的任务。比如,使用derive宏可以为结构体添加新的功能,常用的println!、vec!、panic!等也是宏。Rust中的宏有两大类:一类是使用macro_rules!声明的声明宏;另一类是过程宏,过程宏又分为三小类——derive宏、类属性宏和类函数宏。声明宏的格式:macro_name!{}。首先是宏名,然后是感叹号,最后是()、[]或{}。
2023-12-10 16:18:24 1032
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人