1. 算法复杂度的介绍。
O(LOGn)的含义说明,应该是以2为底的对数变化。
前几天学习过几个数学概念:
最简单的奇偶数,用到的有奇偶校验的方法
相反数 abs 取正数部分
质数:只能被1和自己整除的是质数
RSA的算法就是用到了一个很大的数很难被分解为两个素数的乘积的原理来进行加密 解密操作的。可以用公钥加密,然后使用私钥解密
也可以使用私钥加密证书,然后使用公钥进行验证,这就是数字签名证书了Digital Singature 里面的算法非常复杂
这段时间在看的区块链部分用的是ECC算法 椭圆曲线加密算法。。来进行工作量证明POW进行mine以及退miner比特币的奖励。
数学功底不好只能知道概念Elliptic Curve encryptography
其实SHA的哈希算法应该也是数学功底进行计算。。
数字摘要算法,一致性哈希以及Oracle数据库里面的哈希连接,我的理解是通过对一个对象进行hash计算,如果两个输入值是一样的话那么他们的hash值应该也是一样的,所以使用hash值进行比较比直接使用原始的数值进行比较效率更高一些。
很多数学知识全都还给老师了。。
想到算法复杂度就想到那个计算一个数是不是2的n次方的O(1)性能的移位算法了。。
2. 响应时间与吞吐率的区别
其实之前一个客户被忽悠上新的服务器结果客户用秒表算出来升级之后比升级之前的查询时间更慢了。。
当时感觉应该是用了Xeon最早的3.0Gcpu被替换成了E5V2系列2.0G左右主频的CPU 然后造成无并发情况下响应时间变长,但是当时没有从吞吐率方面考虑说服客户,
客户也是比较耿直和较真的,不听忽悠,只相信自己所见所得。
其实感觉这里面的吞吐里就能比较好的解释
intel挤牙膏一样的升级策略里面,其实单核性能的变化一直不是很大,造成如果是高CPU消耗比如没有实现比较好的绑定变量等情况下,升级服务器配置不见得能提高响应时间。
这一点intel不如IBM的Z14这样的大型机 4.5Ghz以上的高频起跳,性能不是盖的。
不过我一直搞不明白为什么 IBM power小型机使用RISC 到了大型机Zenterprise 却用了CISC的Z系列的CPU了。。
3. 数据结构等
大学的课程时数据结构没好好听,工作中因为前期一直鼠标点点点,用到的知识也少,堆栈部分很新理解的很差,而且自己没有用过c语言或者是c++写过相应的实验,理解的一直有偏差,概念清楚FIFO FILO虽然知道,但是欠缺实践。
4. 缓存部分
1ms = 0.001秒是千分之一秒,书上面有一个小错误。。
其实前几天我还认真的算了下。内存和CPU缓存以及硬盘取数的性能差异。
书中也讲了缓存的直写和回写策略,回写的确能够非常强大的改善性能,在可以容忍掉电数据丢失的情况下非常高效,回写有多重,CPU高速缓存命中回写,写入到内存回写,写入到RAID卡缓存回写,写入到磁盘上面的RAM缓存回写。
5. 锁部分
书的后部分讲述,应该等到看到了那部分再总结,最近看过最多的是oracle的CBC 的问题
hash table 处理的sga缓存区出现hot block 造成 cbc latch加锁影响数据库的性能。
hash table hash bucket 加上最近程序员小灰公众号里面的hash算法的介绍,感觉自己的确小白。。。