Temporary Record
临时记录,后续完善,以免忘记。
值得学习或巩固的知识点
关于 C++11 新特性
defaulted 和 deleted 修饰函数
Deleted functions in C++11
对象移动
右值引用与转移语义
Range-based for 循环
Windows
Windows Path
- Windows 调试器
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe
Windows Command
- 永久设置环境变量 setx
- 查看系统版本
winversysteminfowmic(已弃用)
或者HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion - wmic diskdrive list brief 列举磁盘驱动器:
\\.\PHYSICALDRIVE0、\\.\PHYSICALLDRIVE1。
Windows API
错误码处理
GetLastError、FormatMessage
https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms680582(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/ms679351(v=VS.85).aspx
HRESULT 与 Windows Error Codes
C++异常继承关系文件版本信息
GetFileVersionInfoSizeEx、GetFileVersionInfoEx、VerQueryValue获取 Windows 特殊目录
SHGetFolderLocation
SHGetFolderPath
SHGetSpecialFolderLocation
SHGetSpecialFolderPath提高计时精度
NtSetTimerResolutionandNtQueryTimerResolution. All times are specifified in hundreds of nanoseconds.Timer 定时器
SetTimer利用 Windows 窗口消息 WM_TIMER 实现。要用KillTimer销毁定时器。注:工作线程(非UI)无法使用。
WaitableTimer可以跨线程、进程使用。CreateWaitableTimer创建定时器对象,SetWaitableTime设置回调,CloseHandle销毁定时器。
TimerQueueTimer相当强大,多种工作模式,精度高。键盘按键检测
GetAsyncKeyState _kbhitMicrosoft Try-except Statement
try-except
https://msdn.microsoft.com/en-us/library/s58ftw19(v=vs.140).aspx
try-final
https://msdn.microsoft.com/en-us/library/9xtt5hxz.aspx剪切板相关操作
GetClipboardDataOpenClipboardGlobalLockGlobalUnlock系统信息
sysinfoapi.h进程操作(权限问题)
OpenProcessTokenLookupPrivilegeValueAdjustTokenPrivileges网络操作
InternetAttemptConnectInternetCheckConnectionInternetQueryOptionInternetGetConnectedState
WinINet Functions
IP Helper Functions
UDP 也可用 connect 操作,好处多多:绑定 IP,无需频繁建立与断开连接,拒绝第三方数据报干扰。DIADebug Interface Access SDK,访问存储在PDB(Program Database)文件中信息的库。
VisualStudio 安装目录下有库及示例:D:\Program Files (x86)\Microsoft Visual Studio 14.0\DIA SDK 。
官方参考PDHPerformance Data Helper微软性能数据助手,如同性能监视器记录数据。
PDH header
browsing-performance-counters关于进程退出检测
std::atexit注册进程退出时调用的函数(可注册多个函数,后注册者先调用。)Session 远程桌面相关
WTSQuerySessionInformationA function文件操作
SetFileAttributesCopyFileCopyFileExMoveFileEx打印机操作
【Print Spooler API Functions】
【Print Document Package API】
【Print Dialog Box】
【Print Ticket API】跟踪日志
TraceLog.exeTracePdb.exeTraceView.exeUsing TraceViewETW (Event Trace for Windows)
MSDN: EventRegister 内含示例
MSDN: EventWrite
Windows Service
- Related API:
OpenSCManager、CreateService、OpenService、ControlService、DeleteService、RegisterServiceCtrlHandler、SetServiceStatus、StartServiceCtrlDispatcher - Complete Service Sample
COM 编程
Component Object Model
https://www.microsoft.com/com/default.mspx
Microsoft RPC
基于 命名管道 和 tcp/ip
Thread Pooling
- Thread Pools
- Process and Thread Functions
QueueUserWorkItem
Synchronization Functions
- Synchroization Function
InterlockedIncrementInterlockedIncrement64
Unhandled Exception
- SetUnhandledExceptionFilter : Enables an application to supersede(紧接着…) the top-level exception handler of each thread of a process.
- _set_invalid_parameter_handler : Sets a function to be called when the CRT detects an invalid argument.
- _set_purecall_handler : Sets the handler for a pure virtual function call.
RtlCaptureContext
MIDI MCI
- MIDI Functions
- MIDI Reference
- Musical Instrument Digital Interface (MIDI)
- MCI Functions
- MCI Reference
- MCI
Linux
函数妙用
- echo ANSI 控制码 常用 ANSI 控制码表
- man -f 显示指定内容的所有 section
命令行
.是bash内部指令:在当前shell中执行指定的shell脚本。source在当前shell环境下读取并执行指定脚本中的命令。- getopt 命令
:: 表示该选项可有有 0 个或 1 个参数,短型时,选项与参数之间不能有空格,长型时,选项与参数之间需用等号连接。
调试技巧
gdb使用手册。gdb生成调试信息参数:-g。gdb > target remote IP:PORT进行远程调试。add-symbol-file FILENAME ADDR加载符号文件(本地文件),ADDR 为代码段地址,根据进程物理地址和符号文件代码段偏移地址计算而来。strip从带调试信息的可执行文件中删除调试信息,移出符号记录。objcopy --only-keep-debug从带调试信息的可执行文件中玻璃符号信息到独立的调试文件。add-symbol-file TestDemo.dbg将objcopy导出的符号文件加载到调试器。handle调试器对信号的处理,如:收到SIGUSR2不中断程序,handle SIGUSR2 nostop,其他:stop、print、pass、ignore。info handle/signal查看调试器对信号的处理情况。show debug-file-directory查看调试器加载调试信息的路径。- 从四个问题透析Linux下C++编译&链接
需要总结内容
C#
- C# WinForm 应用退出
C# WinForm程序退出的方法
C# — WinForm 退出方法总结
C# Enum,Int,String的互相转换 枚举转换 - C# dllimport 类型转换
C#调用dll时的类型转换总结
C#调用VC的DLL的接口函数参数类型转换一览表 - C# Windows 服务
穿透Session 0 隔离(一)
穿透Session 0 隔离(二)
C/C++
- Google开源项目风格
- 初始化列表
- STL 元素要求
- CComPtr 用法OB总结
- static 用法总结
static关键字详解
static作用 - const 查看是否已完善
- 类型转换:
static_castdynamic_castconst_castreinterpret_cast参考 - extern 用法总结
多个源文件共用一个全局变量
extern关键字详解
全局变量的声明和定义 - inline 用法
- explicit 用法
- #pragma pack([show]|[push|pop][, identifier], n)
- 仿函数 【C++ STL】深入解析神秘的 — 仿函数
- std::transform(retValue.begin(), retValue.end(), retValue.begin(), toupper);
- 类成员函数指针
- 重点 std::packaged_task std::future std::chrono
- WinUI : SkinUI DirectUI DuiEngine(“svn checkout http://duiengine.googlecode.com/svn/trunk/ duiengine-read-only”)
- C++11 异步编程
深入浅出std::async
用C++11的std::async代替线程的创建
协程概念 - 并发编程
自旋锁:自旋锁(spin lock)与互斥量的区别, 【原创+整理】线程同步之详解自旋锁, C++11实现自旋锁 - 并行计算库
TBB和PPL - 字符串 Hash 函数
BKDRHashAPHashDJBHashJSHashRSHashSDBMHashPJWHashELFHash - window 内存泄漏检测:
VLD、_CrtDumpMemoryLeaks、_CrtMemCheckpoint、_CrtMemDifference。 - 变量存储期:自动、静态、线程、分配。
- 仿 QFile QFileInfo 封装文件操作
Java
- 高性存储
高性能队列——Disruptor
并发框架Disruptor译文 - 文本格式化
FOP xml、xslt、xpath、xsl-fo,文档格式化
FreeMarker 模板引擎 - GC 算法相关
GC的三大基础算法 - SLF4j
基于外观模式的日志框架,不提供具体日志功能,可与多种日志类库兼容。Log4j + slf4j-log4j12、Logback、java.util.Logging、slf4j-simple等 - Spring Boot 相关
Spring Boot 中文索引
纯洁的微笑-Spring Boot 系列完整 - JVM内存结构、Java内存模型、Java对象模型区别。
Python
- 经典示例
CPython解释器支持的线程和进程 - CSDN 视频链接 微信公众号: GitHubDaily
从游戏开始的“0基础Python学习之路”
Python分布式爬虫+数据分析实战
2020最新热点反爬虫机制与绕过实战
Python程序化自动下单交易
Python自动化办公
Python量化分析预测股灾拐点
Python数据分析财务造假因子
数据分析师必备的软硬技能
提升Python数据处理速度四种方式
从数据专员到行业“叫兽”,必备经历
Python机器学习与推荐系统应用
用40行Python代码实现抖音AI换脸
用2个小时写一个CSDN
0基础快速上手推荐系统
实战:CSDN站内搜索技术关键词
程序员简历剖析课:如何打造高质量的简历内容?
大型互联网公司面试复盘
XML
- XML 解释器
DOMSAXXercesCastor
解析xml文件的几种方法和原理
- 几个 PDF 软件库:
xpdf,poppler,mupdf。 - PDF 阅读器开发参考
- MuPDF 参考 xiangxw/mupdf-qt
VisualStudio
- VC 编译器参数设置
显示类内存布局 - dllimport、dllexport
VS下 dllimport与dllexport作用与区别
BAT 批处理
- 系统应用:
shutdown、sc、reg。
Docker
常用工具
- CURL POST 传参
curl -d @- http://hostname:port
Linux: ctrl + D 一次不行就两次,前后输入 ENTER 试试。
Windows: ctrl + Z 一次不行就两次,前后输入 ENTER 试试。
命令行中输入EOF,即文本结束符 - 调试信息查看器
Debug View - 进程监视器
Process Explorer
Process Monitor - GPU 性能问题排查
GPUView log.cmd错误:此时不应有 4000缺环境变量TRACE_LOGGING_MEMORY扫描 systeminfo 查看内存时,遇到中文。
(设置环境变量或者 set 临时变量)
Vtune
Nvidia NightSight - Alternative Data Stream(备用数据流)
dir /r file/directory 查看文件是否有备用数据流
streams64.exe -d file 删除指定文件的备用数据流
PowerShell : Get-Content -Path filename -Stream streamname 可获取备用数据流的内容
算法
局部敏感哈希- 字符串变形,可见范围,自定义基长度,同
Base64(Base85git 源码 base85.h base85.c)
网络协议
Tools
- Windows CMD:
ping、netstat、arp、tracert、route、nbtstat、telnet。
FTP
ICMP
PXE
- PXE 网络装机环境搭建:
DHCP,TFTP,HTTP。
性能分析
- VTune
Intel VTune Get Started - 值得参考的内容内容
动态追踪技术漫谈
内核探测工具 Systemtap 简介
Ubuntu官网 wiki-Systemtap
在 Ubuntu12.04 上安装 Systemtap
Linux 下的一个全新的性能测量和调试诊断工具 Systemtap
Java 火焰图
白话火焰图
Go 代码调优利器-火焰图
开源项目之调试 Python 应用生成性能 CPU 火焰图
使用火焰图做性能分析
如何读懂火焰图
linux 下用火焰图进行性能分析
Windows Performance Toolkit Technical Reference
性能优化
- 高并发编程系列:4大JVM性能分析工具详解,及内存泄漏分析方案
- 阿里P8架构师谈:多线程、架构、异步消息、Redis等性能优化策略
- 阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结
- 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则
- 常用的后端性能优化六种方式:缓存化+服务化+异步化等
- 阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则
- 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
运维监控
Prometheus
特性说明
存储有限,将数据保存在本地,只监控近期数据变化,不适合大量数据存储。远程存储:OpenTSDB、M3db。
数据并非 100% 可靠
无权限管理系统,需额外上层管理系统配合支持。推荐 GrafanaPushGateway
避免收集数据本身的job和instance被覆盖:prometheus 配置文件中添加honor_labels: true。1
2
3
4# 未覆盖示例:
some_metric{instance="some_instance",job="some_job"}
# 被覆盖示例:
some_metric{exported_instance="some_instance",exported_job="some_job",instance="localhost:9091",job="PushGateway"}防止 pushgateway 重启或宕机时丢失数据:
-persistence.file、-persistence.file其他