Hyprland + Arch 备忘录
本篇记录 Arch Linux 作为日常使用系统的相关内容。
系统 | Compositor | CPU | GPU |
---|---|---|---|
Arch Linux | Hyprland | Intel i5-9300H | Nvidia GTX1650 |
Hyprland
对于 Intel + Nvidia 双显卡还要外接显示器的,确实配置要麻烦一些。通常需要结合 Waybar、Wofi 等程序,实现基本的桌面功能。根据自己的喜好完成自定义,这就是完全属于自己独一无二的桌面环境了。
技术博客
查看所有标签本篇记录 Arch Linux 作为日常使用系统的相关内容。
系统 | Compositor | CPU | GPU |
---|---|---|---|
Arch Linux | Hyprland | Intel i5-9300H | Nvidia GTX1650 |
对于 Intel + Nvidia 双显卡还要外接显示器的,确实配置要麻烦一些。通常需要结合 Waybar、Wofi 等程序,实现基本的桌面功能。根据自己的喜好完成自定义,这就是完全属于自己独一无二的桌面环境了。
在开发过程中遇到一个情况,使用的绝对定位,同时用 zoom 属性缩小元素,然后计算 left 和 top 偏移量,使得改变大小后中心位置不变。发现在增加 left 和 top 时,反而元素位置离左上角更近了。
zoom 怎么会影响定位呢?结论在末尾!
此时元素实际宽高均为 50px,而距离容器左边和上边距离容器左边和上边明显不够 1234px,仅仅是他宽高的 2 倍多一点(约123.4px)。 可见 left 和 top 也被等比例缩放了。
position: absolute;
width: 500px;
height: 500px;
zoom: 0.1; // 缩放到0.1
left: 1234px;
top: 1234px;
本文翻译、修改自 Fast properties in V8,其中会删除、修改、批注部分内容,但不改变原本的意思,使阅读更加通顺。
在本篇内容中,我们将介绍 V8 内部是如何处理 JavaScript 属性的。从 JS 的角度来看,对象(Object)和 字典(Dictionary)差不多:以字符串为键,任意对象为值。不过,在进行迭代时,会对整数索引的属性和其他属性进行不同的处理。其他情况下,不同属性的行为基本相同,与是否整数索引无关。
不过,出于性能和内存方面的考虑,V8 确实依赖于几种不同的属性表示方式。在本篇文章中,我们将解释 V8 是如何在处理动态添加的属性时提供快速的属性访问。同时,了解属性的工作原理对于解释 V8 是如何做优化的,例如内联缓存,也是至关重要的。
本文将先阐述处理整数索引属性和命名属性的区别,然后,我们将展示 V8 在添加命名属性时,如何维护 HiddenClasses 以便提供一种快速识别对象形状的方法。然后,我们将继续深入介绍命名属性是如何根据使用情况进行优化的,以实现快速访问或修改。最后,我们将详细介绍 V8 如何处理整数索引属性或数组索引。
负责人布置了个任务,写一个过滤 JSON 数据的方法,处理一下模型数据。递归绕的我真晕,脑子内存还是不太够。
规则:bosclass 值为 boqs 的是树节点,bosclass 值为 wps 的是纯数据。如果树节点的 children 是空数组,那么把树节点移除掉。树的层级是无法预估的,可能有很多层。以下是过滤后的数据:
[
{
"bosclass": "boqs",
"children": [
{
"bosclass": "boqs",
"children": [
{
"bosclass": "wps",
"guid": "fa01a4a1f1d448a3bfb315dac41e1914"
},
{
"bosclass": "wps",
"guid": "cbf47dc52b2243c1a9d46bb046d8a13d"
}
],
"guid": "f785b4a061714dfe8fea367d12ddd29c"
}
],
"guid": "8bc6c9026bb9472f8a3e23b382f87ac1"
}
]
如何过滤呢?首先想到的方法是递归!