程序优化:先别急着重写,试试这四种方法

2025-04-16

程序运行速度慢是程序员的常见痛点。本文作者总结了多年的优化经验,提出四种优化方案:1. 使用更好的算法;2. 使用更好的数据结构;3. 使用更底层的系统;4. 接受精度较低的解决方案。文章以冒泡排序和选择排序为例,详细阐述了算法选择的重要性,并强调了在选择数据结构和编程语言时需考虑实际情况。作者提醒,在进行优化之前,务必先进行严格的性能分析,避免盲目优化。

阅读更多
开发

为什么我之前忽略了并行化?一次对多线程编程的反思

2025-04-05

作者回顾了之前的文章,承认忽略了并行化这一重要的优化方法。他以自身构建网站的经历为例,说明了并行化如何显著提升效率。文章深入探讨了并行化编程的挑战,包括硬件和软件的限制,以及多线程编程中同步问题的复杂性。作者分享了他使用Rust进行多线程编程的经验,指出Rust的特性使得多线程编程更加安全可靠,并提高了效率。最终,作者呼吁开发者重视并行化,将其作为提升软件性能的重要手段。

阅读更多

提升Shell效率:fzf/skim和zsh历史命令搜索的终极指南

2025-03-26

作者长期使用Unix终端,发现不同用户Shell效率差异巨大。通过结合Ctrl-r快捷键和fzf/skim模糊搜索工具,极大提升了命令搜索效率。文章详细介绍了如何配置zsh和skim,改进历史命令显示,用时间戳代替无意义的整数,并展示了如何自定义显示格式,例如用“1d”、“2d”表示命令执行时间,从而更直观地选择所需命令。最终,作者的Shell效率提升了一倍,并鼓励读者尝试改进自身Shell使用习惯,以提高生产力。

阅读更多
开发 Shell效率 zsh

软件依赖:安全与效率的博弈

2025-01-28

现代软件开发高度依赖外部库,如同敞开大门般信任外部代码。作者认为,这种依赖关系如同将房屋大门敞开,虽然提升了效率,却也增加了安全风险。文章探讨了如何在保证效率的同时提升软件安全性,提出了组件隔离和最小权限原则,并借鉴了OpenSSH和Actor模型的思想,设想了一种更安全的软件架构,但这需要重新思考硬件、操作系统和编程语言。

阅读更多
开发

Laurence Tratt:Rust 的两种“断言”让代码更好

2024-11-24

本文探讨了 Rust 语言中两种断言机制(`assert` 和 `debug_assert`)的优势。作者指出,`assert` 用于检查程序的核心假设,即使在发布版本中也会执行,而 `debug_assert` 则用于检查内部假设,仅在调试模式下生效。这种区分让开发者能够更精准地表达不同类型的断言,在不牺牲代码质量的前提下,有效管理性能开销。作者认为,拥有两种断言机制有助于提高代码的可靠性和可维护性,并鼓励其他语言借鉴这种设计。

阅读更多
10
未分类 断言

录制和处理口语

2024-08-24

本文详细介绍了如何录制和处理高质量的口语音频,包括选择合适的麦克风和录音环境、降低噪音和混响、使用动态范围压缩和标准化工具等技巧,并推荐了ffmpeg和ffmpeg-normalize等命令行工具,旨在帮助读者提升音频录制和处理水平。

阅读更多
41
未分类 录音技巧

哪些因素解释了软件的本质?

2024-05-14

软件的本质受三个相互作用的因素影响:软件处于物理世界和幻想世界之间的模糊状态;我们常常误解软件面临的限制,因为软件的规范问题是循环的,必须构建软件才能完全了解其需求;软件开发受观察者效应影响,观察软件运行会改变我们对软件的理解。这些因素导致软件开发过程中存在摩擦和迭代,需要开发人员和用户之间持续沟通和理解。

阅读更多
52