摘要: 1 概述 性能优化是软件开发过程中必不可少,但又很困难的工作。这里是我长期对C/C++开发的性能优化的经验总结。 2 原则 性能优化必须遵循必要的原则进行。 2.1 明确目标 优化前必须有个明确的目标。目标可以有近期的,中期的和远期的。 并且目标必须是可达到,可量化的具体的值。 2.2 性能测试先行 阅读全文
posted @ 2019-05-21 16:19 Chorulex 阅读(3565) 评论(0) 推荐(0) 编辑
摘要: C++的字节对齐是其独有的。 至于为什么有字节对齐,这里不述,一句话,为了提高程序的读写性能,且对齐的大小可编码。 字节对齐的三个准则: 变量的首地址能够被其对齐字节数大小整除 每个成员相对首地址的偏移量都是该成员大小的整数倍,如果不是,那么前一个成员变量补齐 总大小是最大成员大小的整数倍 下面的测 阅读全文
posted @ 2020-08-21 16:49 Chorulex 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 从大学大二开始接触C++,大学毕业后一直在使用C++,我一直坚信C++是一门非常优秀的编程语言。 随着对其的深入了解和长期使用,不断反思总结,但我同时认为其还是一门比较糟糕的编程语言,这从近几年编程语言排行榜就能看出一些端倪。 庞然大物 从C++98到03,到11,到14,再到17,20。近10年其 阅读全文
posted @ 2020-07-03 21:02 Chorulex 阅读(174) 评论(0) 推荐(0) 编辑
摘要: c++编程语言升级到目前最新的C++20,已经变得非常的庞大复杂了。但是核心内容从C++98基本就固定下来了,从C++11到20最大的变化还是在标准库方面。 这里是一份核心内容的清单。还有待完善。 注:以下内容不局限于版本。 一. 基础知识 数据类型和POD/Trivial 数据类型; 类型转换; 阅读全文
posted @ 2020-06-24 11:10 Chorulex 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 一个对象或者内容,输入到一个算法执行计算得出一个唯一的值。 这个过程我们称为映射;也叫hash 这个算法我们称为hash算法或者hash函数;该算法是单向不可逆的,即无法通过hash值反向推导出原对象。 计算出来的唯一值我们称为hash值。 计算出来的hash值在一个环境下是一个固定长度的值。通常算 阅读全文
posted @ 2020-06-24 10:42 Chorulex 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 数据结构中的Tree可以使用数组或者链表的形式来保存。对于树的规模以及结构不会经常剧烈变动且很紧凑时可以使用数组保存。 对于完全二叉树,或者满二叉树,可以使用数组方式按照树从上到下从左到右逐层依序保存。 这种情况下对于节点的位置有如下规律: 假设某个节点所在位置索引为n。其左子节点的位置索引为2n+ 阅读全文
posted @ 2020-06-24 10:12 Chorulex 阅读(874) 评论(2) 推荐(1) 编辑
摘要: 日常 Terminal Oh My Zsh Shutter:截屏工具 tmux:终端复用 VIM Wine Bash Shell 办公 LibreOffice WPS Xmind DIA:画图工具 Virtual Box:虚拟机平台 Typora:markdown编辑器 网络 FireFox Fil 阅读全文
posted @ 2020-01-03 11:22 Chorulex 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Scrum理念 - 透明/检视/适应 80%的价值来源于20%的功能; 快速迭代,增量渐近式开发; 早沟通,早反馈,早改进; 拒绝过度设计,过早细化; 适当设计和规划; 一次做一件事; 一次做完一件事; 共识重于管理和监督; 自组织,自适应; 计划-执行-检查/反馈-行动; 聚焦团队而非个人; Sc 阅读全文
posted @ 2020-01-03 11:19 Chorulex 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 0. 概述 编程语言非常多,而且各有各的适用场景和领域。虽然多且杂,但是所有的编程语言的核心内容却是基本一致的,这归根到底,还是因为编程语言首先是一个解决问题的工具,其次才是方法和思想。 1. 数据类型 数值类型 字符类型 布尔类型 复合类型 字符串 数据类型可以分为强类型/弱类型,以及静态类型/动 阅读全文
posted @ 2019-12-20 10:29 Chorulex 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 编程与其他的工作一样,同样需要各种思维,而其中最重要的同时也能够区分能力的我总结的主要有抽象,隔离,分层,迭代,类比,模块化这几个。 1. 抽象 将具体的业务逻辑和对象能够抽象出程序的模型(各种编程范型和建模)。 抽象过程是从具体到一般,同时应该将具体的很多无关的细节或者特例区分剥离出来,让模型能够 阅读全文
posted @ 2019-12-20 10:27 Chorulex 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 任何编程语言可以从五个方面去考量: 语法 编程范式 库 工具和框架 领域 语法 这是编程语言最为核心最为基础的内容。所有编程语言的语法差别不大,甚至是高度雷同!语法包含的内容实际非常少:变量,表达式,语句,流程控制(分支,循环,递归等),优先级,函数等。 语法中差别最大的就是表达式和语句了,其他的基 阅读全文
posted @ 2019-08-30 11:30 Chorulex 阅读(315) 评论(0) 推荐(0) 编辑