
备忘
superzmy凄临雨
某小公司技术总监,主导了基于Bolt界面引擎的某增强界面引擎,指导重写了一个PC客户端、经历了3D游戏开发及3D地图编辑器开发、擅长框架及各种C++轮子的设计与开发
展开
-
【原创总结】字符串复制写法
strcpy strncpy strlcpy memccpy 等字符串复制函数的总结原创 2022-02-16 21:48:36 · 302 阅读 · 0 评论 -
区间问题求解
备忘转自 知乎 动画详解难啃的线段树转载 2021-04-18 18:11:43 · 197 阅读 · 0 评论 -
在gcc编译器上谨记加上-fwrapv防止编译器不考虑整数环绕
#include <stdint.h>#include <utility>#include <stdio.h>#include <stdlib.h>int calc_hash(signed char *s){ static const int N = 100003; int ret = 1; while (*s) { ret = (ret * 131 + *s); ++ s;原创 2021-04-16 03:08:37 · 855 阅读 · 1 评论 -
一句话区别不同排序
选择:从未排序数据中找到应当放在第I位置的数据,放入第I位置(通过交换二者)。插入:从未排序数据中第一个,插入到已排序数据快排:区间中取一个标准,随后每个元素大于的放右游标处(然后游标左移),小于的放左游标处(然后游标右移);随后分别对左~左游标,右游标-右,进行递归调用。归并:非原地归并需要O(N)空间,原地归并时间复杂度O((logN)²N )希尔:将数组,元素下标除以delta按余数...原创 2020-05-01 22:58:30 · 241 阅读 · 0 评论 -
C# Log2和popcount内部实现
/// <summary> /// Returns the integer (floor) log of the specified value, base 2. /// Note that by convention, input value 0 returns 0 since Log(0) is undefined. ...转载 2020-03-30 16:58:26 · 461 阅读 · 0 评论 -
[转载]《对话守则》
1989年,捷克知识分子哈维尔等人,在布拉格成立了“公民论坛”,制定8条《对话守则》,在街头巷尾张贴,内容是:1、对话的目的是寻求真理,不是为了斗争。2、不做人身攻击。3、保持主题。4、辩论时要用证据。5、不要坚持错误不改。6、要分清对话与只准自己讲话的区别。7、对话要有记录。8、尽量理解对方。遵守这样的对话规则,对话才有效。...转载 2019-11-20 21:41:20 · 205 阅读 · 0 评论 -
测试cache在cpu之间移动耗时,及其他原子操作
cpu E3 1230v2 8核 3.3GHz struct Item { int32_t value = 0; // uint64_t _[(64 - sizeof(uint32_t)) / sizeof(uint64_t)]; }; //static_assert(sizeof(Item) == 64); enum { ...原创 2019-10-27 16:53:34 · 583 阅读 · 11 评论 -
纪录|寻路性能
红蓝绿三组寻路,亮的是平滑(缩进)后的。近距离0.1ms+平滑0.2ms640²地图对角寻路0.2ms+4.4ms原创 2019-10-22 03:32:11 · 263 阅读 · 0 评论 -
tcp cork quickack
以下均为转载摘录https://blog.youkuaiyun.com/u011006622/article/details/81086439Delayed Ack 为什么是40ms?这个时间能不能调整呢?首先在redhat的官方文档中,有如下说明:一些应用在发送小的报文时,可能会因为TCP的Delayed Ack机制,导致一定的延迟。其值默认为40ms。可以通过修改tcp_delack_min,调...转载 2019-10-18 00:23:08 · 228 阅读 · 0 评论 -
C++表达式值分类(左右值等)
prvalue = 纯右值 = (C++17) “初始化”prvalue----temporary materialization conversion 临时物化------>glvaluelvalue = 左值=有身份,不能被移动rvalue = 右值=能被移动glvalue = 广义左值=有身份的xvalue = 混合=有身份,也能被移动...原创 2019-10-05 07:14:47 · 670 阅读 · 0 评论 -
vs2013调试源码错位问题最新解决方法
最近调试某个.h里的inline函数时,调试器的当前调试行,和实际代码功能总是不符(用汇编窗口可以清楚的看到),正好差两行这个问题还以为是大文件特有的,这个.h有一千多行其实这个问题已经存在几个月了,今天实在忍不住,写了个简单的test函数到处插入,最终定位到一个函数有问题template static bool get(lua_State* L, LuaType*, int i原创 2015-02-05 19:55:55 · 3352 阅读 · 0 评论 -
VS重复反复生成工程的问题
今天帮人看代码,工程到手后发现每次按F5都会重新编译,经过一番审查发现工程配置没问题,代码也没有生成lib最后发现是部分cpp文件的日期是未来的某一天,将这些文件重新保存后问题解决原创 2015-11-12 13:33:54 · 983 阅读 · 0 评论 -
笔记-各处理器乱序模型
处理器 Load-Load Load-Store Store-Store Store-Load 数据依赖 x86 N N N Y(简单理解:写可以异步) N PowerPC ARMv7(安卓/苹果) Y Y Y Y N ia64 Y Y Y ...转载 2018-04-06 12:01:29 · 363 阅读 · 0 评论 -
VSCode python : linter pylint is not installed
在ubuntu下安装了VSCode后,配置python过程中不断弹出 linter pylint is not installed 点弹框的install安装失败 正确解决方案是: 用户设置中 覆盖: “python.pythonPath”: “python3” 因为我这边用的是python3,成功设置后点击弹框的install,然后VSCode帮你安装pylint等一系列东西,然后...原创 2018-05-25 17:50:26 · 15095 阅读 · 0 评论 -
VIM缺失的常见编辑功能
ctrl+shift ↑/↓ 移动当前行.vimrc or ~/.vim/plugin/swap_lines.vimfunction! s:swap_lines(n1, n2) let line1 = getline(a:n1) let line2 = getline(a:n2) call setline(a:n1, line2) call setlin...原创 2018-07-12 19:11:28 · 544 阅读 · 0 评论 -
UBuntu源码安装clang llvm-link libcxx,及VSCode & CMake & Clang全套编译体系
(Ubuntu16)源码安装clang llvm-link libcxx libcxxabi,直接下载预编译的安装libcxx和libcxxabi好像要手动,所以放弃了先进入某个目录,先sudo输过密码,再粘贴下面的命令[ -e llvm-7.0.1.src.tar.xz ] || wget http://releases.llvm.org/7.0.1/llvm-7.0.1.src.tar...原创 2019-03-20 01:14:26 · 1193 阅读 · 0 评论 -
linux和windows下各计时方法的大致性能与精度
rdtsc指令读取cpu内置tsc,有constant和nonstop tsc两种额外特性,一般认为几年前的cpu已经都会支持,然而云服务器(HyperV虚拟机)没这特性。cpu没有提供获取rdtsc的单位的指令。另外想要windows下想要地获取tsc的频率恐怕只有读注册表一种稳定途径,而且精度是MHz,很差。想要用rdtsc代替timeGetTime基本上很困难,只能乖乖用QueryP...原创 2019-03-22 02:34:26 · 562 阅读 · 0 评论 -
C++自带或简单代码的随机数发生器性能
C++自带或简单代码的随机数发生器性能:1亿次生成minstd(32位) 1045msmt19937(32位,需要5000字节存储) 640msrand(VS 15位) 3089msJKISS32(32位) 218mslfsr113_Bits(32位) 375msunsigned int JKISS32() {static unsigned int x = 123456789, ...原创 2019-09-23 08:31:43 · 401 阅读 · 0 评论 -
[c++]宏备忘
#pragma message(_STRINGIZE(max(1,2))) 编译时输出原创 2014-07-17 13:41:34 · 580 阅读 · 0 评论