赵子清技术文章
2019.04
表达与设计
用reST编写文档
1. 简介
2. 安装与基本使用
2.1. 安装软件包
2.2. 项目建立
2.3. conf.py配置
2.4. index页配置
2.5. 参考
3. reST语法介绍
3.1. 章节标题
3.2. 段落
3.3. 行内标记
3.4. 列表
3.5. 代码
3.6. 超链接
3.7. 图片
3.8. 表格
3.9. 引用
3.10. 脚注
3.11. 提醒
3.12. 替换
3.13. 参考
4. 修改样式
4.1. Step1
4.2. Step2
4.3. Step3
5. 生成PDF
5.1. 方法一:使用xeTex(推荐)
5.2. 方法二: 使用CJKutf8包 (默认)
5.3. 终极解决办法
6. 生成API文档
6.1. Step1
6.2. Step2
6.3. Step3
6.4. Step4
7. 在Visual Studio Code中使用
7.1. 安装步骤
7.2. 配置
7.3. 使用
7.4. 问题记录
8. 给github博客添加评论功能
8.1. 1. 注册OAuth Application
8.2. 2. 编辑博客页面, 引入gitment
8.3. 3. 初始化评论
8.4. 参考链接
LaTeX
安装与配置
1. 安装
2. 卸载
快速入门示例
文本与段落
程序代码
图像与表格
错误调试
参考链接
减少Word文件大小
分析
减小图片大小
参考
参考链接
开发语言
C++ 11
前言
C++的变化
对C++程序员的建议
对C程序员的建议
C++11主要特性
参考
基本功能
面向对象
标准库
boost库
Go
环境配置
使用代理以解决go get超时问题
日常项目开发环境配置
IDE配置
JSON解析
简单解析
不确定JSON的解析
复杂内容的解析
C语言适配
调用C编写的动态库
学习资料
lua基础
预备知识
获得lua
lua命令行
保留关键字
注释
Chunk
数据类型
string
userdata
thread
表达式
算术运算符
关系运算符
逻辑运算符
连接运算符
运算符优先级
语句
赋值
局部变量
条件语句
循环语句
函数
Linux shell编程
汇编语言
计算机体系结构
CPU
内存
中断
汇编语言简介
汇编代码的两种记法
CentOS运行nasm
操作数
基本指令
指示符
输入输出
代码模板
第一个程序
语言基础
数据移动
算术运算
位操作
控制流
栈操作与函数调用
intel SIMD指令
调试
Linux + gdb
与C语言互操作
调用约定
C调用汇编代码
汇编调用C代码
结构体
参考链接
编译与构建
参考链接
TOML配置文件语言
示例
语法
整体约定
注释
字符串
整数
浮点数
布尔值
时间日期
数组
表
内联表
表数组
为什么我要用它呢?
目前的实现
libtoml试用
编译
简单示例
参考
字节序与比特序
字节序
比特序
编写可移植代码
数据结构与算法
链表,栈与队列
单向链表
双向链表
侵入式数据结构
栈
队列
基本实现
下标的处理
无锁队列
树
二叉查找树
AVL树
红黑树
哈希表
图
遍历
排序
查找
AC算法
系统与库
Linux
Windows
macOS
调试与逆向工程
Linux下段错误调试技巧
生成core dump文件并用gdb调试
使用dmesg和addr2line命令
让程序段错误时自动输出堆栈信息并调试
参考
参考链接
TCP/IP网络
TCP/IP详解
网络算法学
9 Protocol Processing
9.1 缓存管理
9.2 CRC和Checksum
9.3 通用协议处理
9.4 重组
9.5 结论
14 Scheduling Packets
14.1 概述
14.2 拥塞控制
14.3 带宽与突发限制
14.4 多队列与优先级
14.5 资源预留协议
14.6 带宽保证
14.7 时延保证
14.8 Scalable Fair Queuing
14.9 dpdk分层调度
14.10 DiffServ架构介绍
14.11 dpdk QoS框架
附录
参考
参考链接
安全
DPI
参考链接
参考链接
性能优化
CPU知识
理解微处理器
Introduction
Code and Data: a closer look
meet the “file clerk”
Refining the model
RAM: when the registers alone don’t cut it
A closer look at the code stream: the program
Excursus: Op codes and machine language
The programming model and the ISA
Branch instructions
Conclusion
理解流水线与超标量执行
Introduction
Pipelining Explained
Superscalar execution
Combining pipelined and superscalar execution
Conclusions
理解带宽与时延
NetBurst: The Microarchitecture of the Pentium 4 Processor
引言
NetBurst微架构概述
时钟频率
NetBurst微架构
性能
结论
作者
CPU相关术语及缩略语
Intel优化手册
2 INTEL 64 AND IA-32 PROCESSOR ARCHITECTURES
Skylake Server
Skylake
Haswell
Haswell-E
Broadwell
Sandy Bridge
Ivy Bridge
Core & Enhanced Core
Nehalem
超线程技术
64位架构
SIMD技术
3 一般性优化原则
3.1 性能工具
3.2 处理器全景
3.3 编程规则, 建议及调整提示
3.4 优化前端
3.5 优化Execution Core
3.6 优化内存访问
3.7 prefetch
3.8 浮点数的考量
3.9 最大化PCIe性能
7 优化cache使用
7.1 GENERAL PREFETCH CODING GUIDELINES
7.2 PREFETCH AND CACHEABILITY INSTRUCTIONS
7.3 PREFETCH
7.4 CACHEABILITY CONTROL
7.5 MEMORY OPTIMIZATION USING PREFETCH
7.6 MEMORY OPTIMIZATION USING NON-TEMPORAL STORES
Intel VTune Amplifier
介绍
简介
调优方法论
安装
一般使用
参考资料
教程: 优化热点
编译示例程序
创建vtune工程并运行分析
分析代码
优化代码
教程: 优化硬件利用率
编译示例程序
创建vtune工程并运行分析
分析代码
优化代码
进一步分析和优化
教程: 优化伪共享
编译示例程序
创建vtune工程并运行分析
分析代码
优化代码
调优指南: Xeon E5 v3
1 Intel Xeon E5 v3 Family
2 性能测量的复杂性
3 发现性能问题
4 调优Front-End Bound
5 调优Back-End Bound
6 调优Bad Speculation
7 调优Retiring
8 附加主题
CPU Cache Optimization
CPU Cache: the Need to Know
Our First Example
Cache Line and Fetch Utilization
More Examples
Conclusion
实际验证
参考
SIMD指令编程demo
正常代码
一次循环计算4次
使用SSE指令
使用AVX指令
性能对比
更多参考
参考链接
虚拟化
VMware
参考链接
QEMU
参考链接
容器
参考链接
AI
学习资料
Pattern Recognition and Machine Learning
Convex Optimization
Deep Learning Fundamentals: An Introduction for Beginners
Optimization in Operations Research
Artificial Intelligence: A Modern Approach
Deep Learning in Natural Language Processing
机器学习
Deep Learning
开源
DPDK
深入浅出DPDK
引言
深入浅出dpdk: cache与内存
深入浅出dpdk: 并行计算
深入浅出dpdk: 同步充斥机制
深入浅出dpdk: 报文转发
深入浅出dpdk: PCIe与包处理IO
深入浅出dpdk: 网卡性能优化
深入浅出dpdk: 流分类与多队列
深入浅出dpdk: 硬件加速与功能卸载
DPDK
源码分析: EAL
源码分析: Memory
源码分析: Memseg
源码分析: Memzone
源码分析: Malloc
源码分析: Mempool
源码分析: Mbuf
源码分析: Ring
编译系统
Tengine
介绍
Tengine的由来
Tengine的改进
架构
高性能服务器设计
进程模型
事件处理模型
模块化
请求处理机制
参考资料
基本概念
连接/connection
请求/request
keepalive
pipeline
lingering_close
参考资料
基础设施
日志
内存管理
cycle
字符串操作
容器
时间
网络
事件
进程
线程
模块
错误处理
HTTP
HTTP请求处理
wireshark
hyperscan
hyperscan介绍
首席工程师: How we match regular expressions
源码结构
参考
hyperscan预备知识
C++ 11
设计模式
数据结构
Boost Library
Ragel
hyperscan调试环境与技巧
编译
生成dump信息
加速编译过程
生成源码文档
参考链接
工具与杂项
Vim
简介与基本配置
为什么要使用vim
本系列文章的指导思想和一些约定
学习之前的基本配置和几个需要了解的基本操作
Git
Git常用命令
一、新建代码库
二、配置
三、增加/删除文件
四、代码提交
五、分支
六、标签
七、查看信息
八、远程同步
九、撤销
十、其他
小技巧
shell通过SSH连接github
在命令提示符中显示当前分支
虚拟机
配置静态IP
减少磁盘占用空间
清理软件包
清理不用的旧内核
清理日志
使用VMware磁盘工具回收磁盘空间
参考
杂项
解决启动黑屏问题
CMake使用
Hello World
清理编译后留下的文件
处理多个目录
处理第3方依赖库
生成debug和release版的程序
参考资料
解决C/C++依赖库不兼容的问题
问题引入与分析
解决问题
参考资料
VPS+Shadowsocks科学上网
购买VPS
安装,配置shadowsocks
服务器端
客户端
其他技巧
对不同网站使用不同的连接方式: 直接/代理
Window下令无法设置代理的应用程序使用代理
参考链接
补丁工具patch
1 为单个文件生成补丁
2 为多个文件生成补丁
3 打补丁
4 示例
libpcap使用
创建句柄
pcap_open_offline
pcap_dump_open
关闭句柄
pcap_close
pcap_dump_close
读取packet
pcap_open/pcap_dispatch
设置选项
pcap_set_promisc
其他
pcap_breakloop
pcap_file
pcap_dump_file
参考
CUnit
编译安装CUnit-2.1-3
CentOS应用
CentOS7.3Minimal从零配置C/C++开发环境
网络配置失败,显示Failed to start LSB: Bring up/down networking
共享CentOS虚拟机上的文件给Windows本机访问
安装pip
Ubuntu应用
14.04更换阿里云源
安装YouCompleteMe插件
隔离某些cpu核心
VMware Workstation中的Ubuntu Server虚拟机重启后共享文件夹消失
Cannot set LC_CTYPE to default locale: No such file or directory
man文档不全
修改系统对消息队列的默认限制
小米路由器开发
用ROM刷机
开启SSH
交叉编译环境搭建
交叉编译库或工具
编译libpcap
编译helloworld
编译gdb
其他
在小米路由器上部署静态网页
QEMU模拟器
安装软件包
用户模式
系统模式
一般使用
配置网络
远程gdb调试
配置文件-参考链接
兴趣爱好
视频制作相关小技巧
如何下载B站视频,或者用微博发的视频?
Mac系统下应该用什么软件做视频编辑?
Mac系统如何做动图(gif)?
我有一些动图(gif),怎么将它们导入到fcpx?直接导入发现它们不动了啊!
Mac系统如何录制系统自己发出的声音,比如我正在听一首很好听的歌但是不方便下载它?
ffmpeg应用
常用技巧
参考
友情链接
关于我
赵子清技术文章
Docs
»
首页
首页
¶
表达与设计
开发语言
数据结构与算法
系统与库
调试与逆向工程
TCP/IP网络
安全
性能优化
虚拟化
AI
开源
工具与杂项
兴趣爱好
友情链接
关于我