或者使用rpm的源码包,我们可以输入命令:whereis cp
找到cp所在的路径
rpm -qf /bin/cp
使用rpm的qf参数能够查到某个文件属于哪个rpm包
我的机子的结果:coreutils-5.2.1-31.6
然后再到rpmfind.net中找coreutils的src.rpm源码.
rpm -ql -p /path/to/coreutils-5.2.1-31.src.rpm
rpm -ivh coreutils-5.2.1-31.src.rpm
然后在/usr/src/RedHat/SOURCES/(这个目录的名称不一定,取决于你装的是什么系统)就可以找到相应的源代码了。
举一反三,可以找到其他命令的源代码。
另外,Ubuntu中可以用apt-get -d source "coreutils" 这条命令来下载源代码,很方便。
HikariCP中实现的一个List,底层基于数组实现,目的是提高List *** 作的性能,主要用于HikariCP中缓存 Statement 实例和链接。
与JDK自带的ArrayList的主要优化:
可以发现其实并没有太高级的 *** 作,但这就是HikariCP快的原因之一,将细节做到极致。
初始化时默认数组长度为32。
ArrayList 中默认数组长度为10。
作为对比,看下 ArrayList 中的 add 方法:
不做范围检查,直接返回数组下标。
在HikariCP中, FastList 用于保存Statement和链接,程序可以保证 FastList 的元素不会越界,这样可以省去范围检查的耗时。
同样看下ArrayList里的get方法
remove 里在查找元素时是从后向前遍历的,原因还是FastList用来保存 Statement ,而Statement通过是后创建出来的先被Close掉,这样可以提高查询效率。
同样看下ArrayList中的Remove方法:
FastList 实现了 List 接口,但并没有将所有方法都实现出来,对HikariCP中用不到的方法直接抛出了 UnsupportedOperationException
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)