下列方法中,____不可以用来程序调优?
A.改善数据访问方式以提升缓存命中率
B.使用多线程的方式提高 I/O 密集型操作的效率
C.利用数据库连接池替代直接的数据库访问
D.利用迭代替代递归
E.合并多个远程调用批量发送
F.共享冗余数据提高访问效率
答案:B
解析:
A.缓存命中率高的话自然程序性能就高啦
B.I/O密集型指的是所有的线程都在等待一个I/O的操作,当他输入输出端所有的数据来了之后,我们非常快的就能处理完,而大部分时间都会在等待中,所以既然已经在等待中的话再去增加 线程的量也没法提高效率的,因为就是处于等待中的嘛。
C.连接池是指已经连接到了数据库多个连接放在那里,要用的话直接从连接池拿一个连接用就行啦,不用了再还回去,这样就避免了与数据库建立连接然后再断开,因为与数据库建立连接是很慢的,所以OK。
D.递归会使用栈,他的消耗是很大的,
E.一个非常常用的程序调优的方式,远程调用,数据发送然后等待数据响应回来,这一个来回的时间是很慢的,如果有多个远程调用的话,就得等多次,所以不如将多个远程调用一起发,然后一起等待结果,这和TCP的滑动窗口有点类似,
F.冗余数据怎么来共享呢,在面向对象里有一个不可变对象,这个不可变对象就是一个非常好的可以共享的数据,当我们把所有的数据都做成不可变对象来缓存起来的话就能提高访问效率。