在先前《CPython 中的垃圾回收机制》一文中,我们详细介绍了 Python 程序设计语言的默认实现 CPython 中完成垃圾回收的详细步骤。文中提到了有关垃圾回收流程中有关“代”(generation)的概念。本文详细介绍这种用于提升垃圾回收器性能的常见优化手段——将变量划分为多代。
CPython 中的垃圾回收机制
本文主要参考自 Python Developer’s Guide 中的这篇文章
CPython 是你可以从 Python.org 网站上下载到的原生 Python 解析器。在大多数系统中,当你输入 python
指令运行你的程序时,你通常是在使用默认的 CPython 实现。与大多数具有自动存储器管理机制的编程语言类似,Python 具有垃圾回收(Garbage Collection,GC)特性。了解 CPython 是如何实现垃圾回收机制对于深入了解 Python 编程语言是重要的。
LeetCode 31: Next Permutation 解法介绍
LeetCode 问题 31 是一道考察排列以及数组操作知识的综合性题目。最佳解法可以使用 \(O(n)\) 的时间复杂度和常数的空间复杂度解决该问题。本文给出关于该问题的详细解释。
LeetCode 260: Single Number III 解法介绍
LeetCode 问题 260 是一道有关位运算知识的题目。最佳解法可以使用 \(O(n)\) 的时间复杂度和常数的空间复杂度解决该问题。本文给出关于该问题的详细解释。
如何为树莓派 Raspberry Pi 升级 Python 版本
用户时常使用树莓派开发板进行物联网(Internet-of-Things,IoT)开发工作。其上运行的一些诸如 Home Assistant 的程序可能需要一个更新版本的 Python,而树莓派等系统通过 apt 包管理器预置的 Python 版本可能并非最新。我们以将树莓派 Raspberry 更新至 Python 3.9 为例,演示如何将系统 Python 版本升级至最新版本的操作。
PHP 8.0 新特性一览
自 2015 年 12 月 3 日 PHP 7.0 发布以来,PHP 已经有五年的时间没有更新过大版本号了。而就在最近几天,PHP 社区终于发布了下一个大版本——PHP 8.0。PHP 8.0 相比之前的版本有哪些更改呢?PHP 8.0 有哪些新特性呢?下面就带大家来看一看。
如何使用自己的域名搭建邮箱
最近@赵一霖同学正在折腾电子邮件服务器,因为他希望有一个名字叫 zhaoyilin
的邮箱地址。我们都知道,RFC 5322 中规定了电子邮箱地址的格式为 local-part@domain
。然而许多常用的邮箱名称在大型的邮件服务商(比如后缀 @outlook.com
或者 @qq.com
)已经被注册。一个曲线救国的方法是在互联网上注册自己的域名,并且使用类似 [email protected]
这样的邮箱地址。成功注册一个新域名后,我们便开始了自定义域名邮箱的配置之旅。
如何以创纪录的速度启动一个网站项目
你是否有搭建一个博客或其他类型网站的需求?得益于日益降低的硬件以及带宽方面的成本,如今我们可以通过非常低廉的价格从云服务提供商处购买按使用量计费的相关服务。本文通过简略的介绍使读者了解在互联网上构建一个博客或其他类型网站的基本步骤。
LeetCode 137: Single Number II 解法介绍
LeetCode 问题 137 是一道有关位运算知识的题目。最佳解法可以使用 \(O(n)\) 的时间复杂度和常数的空间复杂度解决该问题。很遗憾关于本题目在中英文互联网中均没有一个很友好的解释,本文给出关于该问题的详细解释。
tmux:终端多路复用器
你是否考虑希望能在关闭终端窗口或 SSH 连接后,程序仍能在后台运行?是否希望在下次打开终端时仍能保留先前的状态上下文?或是希望和其他用户共享终端内容——以实现结对编程?终端多路复用器程序 tmux 能够解决你的上述困扰。