Skip to content

最近文章 · 第 3 页

预处理、编译、链接都在做什么

最近先写一个简单的,之后再写复杂的。 在初学C语言时,我们往往被告知C语言的编译过程是预处理、编译和链接,那么这些过程都是什么呢? 下面以Linux下常用的 gcc 编译器举例说明我们平时见到的这些过程都是什么。 gcc 原名GNU C C...

阅读全文
原子计数、缓存行、争用与总线锁

原子计数、缓存争用与性能问题 操作系统会在什么时候进行线程切换 想必熟背八股的朋友们都知道,操作系统进行线程切换时无非是两种情况:线程时间片用尽和线程主动让出执行权。 线程主动让出执行权时包括等待锁、等待IO操作或者是单纯的sleep,这里...

阅读全文
基于Linux对栈的分析

本文以Linux系统为例,简析栈究竟是什么东西。其中的部分思想也可以用于其他操作系统。 栈是什么 函数运行的栈是计算机内存中的一种数据结构,用于管理函数调用和执行过程中的局部变量、参数、返回地址以及执行上下文。 但无论在什么情况下,栈都是一...

阅读全文
Redis与fork系统调用

Redis为什么不能在Windows上工作 因为Redis虽然使用ANSI C编写,兼容所有编译器版本,但是其调用了只有 nix系统才存在的fork系统调用,而Windows上没有这个调用。 为什么Redis需要fork Redis作为非常...

阅读全文
C/C++常见内存问题定位

本文旨在记录Linux下C/C++常见的内存错误。 SIGSEGV 段错误,最常见的内存错误,是由于使用错误的方式访问内存导致的,常见的错误方式有下面几种。 1. 解引用空指针,这是最可能发生的段错误,在有core dump文件时也很容易定...

阅读全文
RSA浅析

什么是RSA 简单地说,RSA就是一种非对称加密算法,它组成了今天计算机网络安全的基石。每个人的浏览、消息、支付等背后,都有RSA的身影。虽然其有很多竞争者,但直到如今,RSA依然是主流的非对称加密方式。比如B站的证书就是基于RSA的。 本...

阅读全文
Python哈希冲突浅析

Python字典是一种常用的数据结构,内部采用hashmap数据结构,利用元素的hash值作为索引。 字典实现 首先实现源码在 Github:Objects/dictobject.c 与Java的HashMap不同,Python字典解决冲突...

阅读全文
采用加密货币思想进行HTTP流控

流控是常见的功能,很多重要位置都有流控。 为什么进行流控 在实际生产中,我们的很多资源都是有限的,比如视频转码的CPU以及GPU资源、流量配额、邮件配额、数据库连接等,这些资源如果不提前预计分配,导致某一配额用光或队列爆满,就会导致服务暂时...

阅读全文
Cloudflare 导致的Range头失效

Cloudflare引起的问题 在配置服务器上的Nginx时,发现无论怎么配置都无法分段下载,并且并没有返回错误,通过 curl I R "Range: byte=100 200" https://my.domain.com/files/x...

阅读全文
python多进程随想

为什么Python多进程入口需要用 if name == ' main ' 包裹呢? 实际上,如果在Linux上运行,通常情况下即使没有这行判断也并不会造成问题。 因为在类Unix系统中,程序可以通过fork创建自身的副本,这也是Pytho...

阅读全文

最后更新: