数据结构优化带来意想不到的CPU性能提升

2025-08-26

一个处理大型数据集的程序遇到了内存和CPU性能瓶颈。最初使用单一数组存储数据,导致高达1GB的内存消耗。通过数据导向编程,将数据拆分为多个数组,节省了约200MB内存。更进一步,用字节数组替换字符串数组索引,内存消耗进一步降低。令人惊讶的是,这一改变还显著降低了CPU使用率。原因在于垃圾回收机制:处理字符串数组时,GC需要遍历所有字符串对象,而处理字节数组则无需此步骤,从而大幅减少了GC开销。

阅读更多

在我脑海中免费运行了 30 年的代码

2024-06-08

本文讲述了作者在 12-13 岁时学习 Pascal 编程语言的经历。作者回忆起一段处理磁盘停放的 Pascal 代码,这段代码困扰了他 30 年之久。由于当时作者对计算机底层知识了解有限,无法理解代码中出现的寄存器、BIOS 调用等概念,因此这段代码在他脑海中留下了深刻的印象。最终,作者通过查阅资料和分析,成功理解了这段代码的含义。

阅读更多
45
未分类

构建无服务器安全的死信箱

2024-06-05

本文介绍了如何构建一个安全的无服务器死信箱系统,用于记者与匿名举报人之间传递敏感信息。该系统采用端到端加密、Tor网络匿名通信、定时发布混淆信息等技术,即使服务器被恶意控制,也能有效保护信息安全和用户身份匿名性。文章详细描述了系统架构、实现细节以及安全防护措施,并讨论了潜在攻击和应对策略。

阅读更多
53
未分类

可否认加密

2024-05-05

这篇文章探讨了可否认加密的概念,并提供了一种使用AES-GCM算法实现的方案。作者详细解释了加密和解密过程,并强调了使用PBKDF2生成密钥、随机化数据块位置以及利用AEAD特性进行验证的重要性。文章最后还提供了一个示例,展示了如何使用该方案加密多个信息,包括安全信息、诱饵信息和真正机密信息。

阅读更多
185