摘要: 引言 上一篇文章中介绍了一些无缓冲文件I/O函数,但应该什么时机调用这些函数,调用这些I/O函数时进程和内核的行为如何,如何高效率地实现I/O?这篇文章就来谈一谈Linux下的5种I/O模型,以及高性能服务器编程中常用的I/O复用,为后面实现精简版本的高性能服务器做铺垫。 Linux下的5种I/O模 阅读全文
posted @ 2022-02-03 17:55 HickeyZhang 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 引言 在后台开发中,对于文件I/O我们通常不使用C语言封装的fopen、fread、fwrite标准I/O,而是直接使用Linux提供的系统调用函数。因为这些系统调用没有使用用户缓冲区,我们直接与内核打交道,效率更高,且可以自己定制一些符合应用场景的操作。下面介绍Linux用于文件I/O的数据结构, 阅读全文
posted @ 2022-01-22 20:33 HickeyZhang 阅读(365) 评论(2) 推荐(0) 编辑
摘要: 01. 学习目标 了解信号中的基本概念 熟练使用信号相关的函数 了解内核中的阻塞信号集和未决信号集作用 熟悉信号集操作相关函数 熟练使用信号捕捉函数signal 熟练使用信号捕捉函数sigaction 熟练掌握使用信号完成子进程的回收 02. 信号概述 信号的概念 信号是 Linux 进程间通信的最 阅读全文
posted @ 2021-10-24 22:50 HickeyZhang 阅读(577) 评论(0) 推荐(1) 编辑
摘要: 一些碎碎念 欲速则不达,这句话没什么问题,但对于互联网来说却不太实用。速要求快速掌握新技术,而又不能浮光掠影。对于重要的技术,还要掌握得够深。 世界上没有谁不可被替代,宇宙少了谁都不会停止运转。重要的是,为了替代你,需要付出多大的代价。从代价上讲,碾死一只蚂蚁不需要任何考虑,一只老鼠或许要花些力气, 阅读全文
posted @ 2021-08-29 11:22 HickeyZhang 阅读(43) 评论(0) 推荐(1) 编辑
摘要: 命令模式 光标移动 在命令模式下: h、j、k、l分别代表←、↓、↑、→移动。 0代表移动到行首 $(shift + 4)代表移动到行尾 gg代表移动到文件头 G代表移动到文件尾 nG代表移动到n行 删除 命令模式下: x:删除光标位置内容 X:删除光标之前内容 dw:从光标所在位置删除单词以及空格 阅读全文
posted @ 2021-08-21 18:17 HickeyZhang 阅读(145) 评论(0) 推荐(1) 编辑
摘要: 引言 本篇文章分不同种类的用途简单介绍Linux常用命令,主要是对这些命令有些了解,真正掌握需要在日常使用中熟悉记忆。同时,需要注意学习这些命令不要去死记硬背全部命令的所有参数和选项,重要的是分种类了解有哪些命令,在需要的时候知道能用什么命令,然后每个命令记住一些常用的参数,或者善于利用man命令。 阅读全文
posted @ 2021-08-21 16:33 HickeyZhang 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 在命令后面添加--registry=https://registry.npm.taobao.org,使用淘宝镜像,如: npm install picgo -g安装时龟速, 而使用npm install picgo -g --registry=https://registry.npm.taobao. 阅读全文
posted @ 2021-08-17 12:55 HickeyZhang 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 对抗防御之对抗样本检测(一):Feature Squeezing 引言 在之前的文章中,我们介绍了对抗样本和对抗攻击的方法。在该系列文章中,我们介绍一种对抗样本防御的策略--对抗样本检测,可以通过检测对抗样本来强化DNN模型。本篇文章论述其中一种方法:feature squeezing,特征压缩通过将原始空间中许多不同特征向量对应的样本合并成一个样本,减少了对手可 阅读全文
posted @ 2021-08-13 16:01 HickeyZhang 阅读(3902) 评论(0) 推荐(7) 编辑
摘要: 引言 使用new expression为类的多个实例分配动态内存时,cookie导致内存利用率可能不高,此时我们通过实现类的内存池来降低overhead。从不成熟到巧妙优化的内存池,得益于union的分时复用特性,内存利用率得到了提高。 原因 在实例化某个类的对象时(在heap而不是stack中), 阅读全文
posted @ 2021-08-07 12:01 HickeyZhang 阅读(815) 评论(3) 推荐(2) 编辑
摘要: 引言 在本篇文章中,我们主要剖析c++中的动态内存管理,包括malloc、new expression、operator new、array new和allocator内存分配方法以及对应的内存释放方式和他们之间的调用关系,另外也包括一些会引发的陷阱如内存泄漏。 动态内存管理函数及其调用关系 c++ 阅读全文
posted @ 2021-08-06 14:23 HickeyZhang 阅读(3048) 评论(0) 推荐(21) 编辑