标签: 源码解析

配置 ZRAM,实现 Linux 下的内存压缩,零成本低开销获得成倍内存扩增

由于项目需求,笔者最近在一台 Linux 服务器上部署了 ElasticSearch 集群,却发现运行过程中经常出现查询速度突然降低的问题,登录服务器后发现是物理内存不足,导致机器频繁发生页面交换。由于只是临时内存需求,没有提升配置的必要,而 ElasticSearch 中存储的数据主要是文本数据,因此笔者想到了使用 ZRAM 对内存进行压缩,以避免磁盘 IO 导致性能波动,效果明显。介于互联网上关于 Linux 配置 ZRAM 的文章少之又少,本文将为读者介绍在 Linux 中配置与使用 ZRAM 的过程,并借此机会介绍 ZRAM 以及 Linux 内存部分的运作机制。

继续阅读 配置 ZRAM,实现 Linux 下的内存压缩,零成本低开销获得成倍内存扩增

[源码级解析]阅读源码,分析并解决scrcpy无法正常输入中文的问题

移动互联网时代下,手机能干的事情越来越多,但如果想要让工作更高效,鼠标键盘依旧是必不可少的。可许多软件(点名阿里系)并没有提供对应的桌面版本,也不兼容基于x86架构的Android模拟器,这就使得我们要用投屏软件来在电脑上操作手机。scrcpy就是众多投屏软件中最具特色的一款,作为一款开源软件,它拥有极佳的性能和丰富的功能,但这款软件在中文输入方面却存在较大的问题。本文将为读者介绍如何让scrcpy正常输入中文,让这款非常好用的投屏软件变得更好用。

继续阅读 [源码级解析]阅读源码,分析并解决scrcpy无法正常输入中文的问题

[源码级解析]解决Aegisub3.2.2 MacOS版本音量/缩放滑块无法使用的BUG

Aegisub是一款简单好用的开源字幕制作软件,广受字幕制作者欢迎。但Aegisub官方最新版本是2014年更新的3.2.2版本,距今已有6年历史,存在着大量未修复的BUG与兼容性问题。其中MacOS下的Aegisub存在一个致命的BUG,即波形视图右侧的音量/缩放滑块无法正常使用,只能在0%和100%两者间调整,导致要么看不到波形(听不到音频),要么波形爆满(严重削波)。本文将分析该问题存在的原因,并给出一个修复该问题的编译版本,便于字幕制作者正常使用。

继续阅读 [源码级解析]解决Aegisub3.2.2 MacOS版本音量/缩放滑块无法使用的BUG

[源码级解析]分析并解决JavaScript里RegExp类中test()方法结果不固定的情况及其源码解析

在开发一个前端表单过程中,我使用了正则表达式对用户填写的内容进行校验,却在使用过程中发现了奇怪的现象:RegExp类的test()方法对同一字符串,在不同时间竟有不同的结果。本文将为读者分享我解决这一问题的方法及其背后的原理。

继续阅读 [源码级解析]分析并解决JavaScript里RegExp类中test()方法结果不固定的情况及其源码解析

[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题

在维护实习单位服务器的过程中,偶然发现一个有350万文件的文件夹需要清理,于是我习惯性执行了rm -rf ./*,却在数秒后被告知“参数列表过长”。在一番折腾过后,我终于通过取巧的办法完成了这一任务,也随着相关内核源码的阅读,了解到了关于Linux Shell的一些有趣特性。

继续阅读 [源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题