|
|
|
|
移动端

1.17 编程技巧

《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍编程技巧。

作者:猿媛之家来源:机械工业出版社|2017-12-06 18:54

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

1.17 编程技巧

【真题 278】下列方法中,不可以用于程序调优的是()。

A.改善数据访问方式以提升缓存命中率 B.使用多线程的方式提高 I/O密集型操作的效率

C.利用数据库连接池替代直接的数据库访问 D.使用迭代替代递归答案:B。性能调优通常可以采用以下几种策略:用空间换时间、用时间换空间、优化代码和并行处理等。本题中,对于选项 A,改善数据访问方式以提升缓存命中率,属于算法改进措施,可以用于程序调

优。所以,选项 A正确。对于选项 B,通常,I/O密集型问题一般是硬件层面的问题,例如硬盘,它的 I/O就摆在那里,无论多少线程存在,瓶颈就在硬盘,对于“ I/O密集型”的应用程序可以采用 I/O效率较高的 SCSI(Small

Computer System Interface,小型计算机系统接口)硬盘,或者采用集群的方式。因此,使用多线程的方式提高 I/O密集型操作的效率说法不合理。所以,选项 B不正确。

对于选项 C,利用数据库连接池替代直接的数据库访问,减少了连接的创建和关闭对资源的损耗,它属于程序调优的范畴。所以,选项 C正确。

对于选项 D,由于递归容易造成栈溢出(过多的递归调用会引起栈溢出,因为函数调用的参数是通过栈空间来传递的,在调用过程中会占用线程的栈资源,而对于递归调用而言,只有走到最后的结束点后,函数才能依次退出,而未到达最后的结束点之前,占用的栈空间一直没有释放,如果递归调用次数过多,就可能导致占用的栈资源超过线程的最大值,从而导致栈溢出,导致程序的异常退出),而迭代不会,而且迭代能够大大减少代码的空间复杂度,所以,使用迭代替代递归可以用于查询调优。如下是分别使用递归与迭代实现 Fibonacci数列问题的示例代码。

因此,本题的答案为 B。

【真题 279】下列选项中,能缩短程序执行时间的措施是( )。

Ⅰ.提高 CPU时钟频率; Ⅱ.优化数据通路结构; Ⅲ.对程序进行编译优化。

A.Ⅰ和Ⅱ  B.Ⅱ和Ⅲ  C.Ⅰ和Ⅲ  D.Ⅰ、Ⅱ和 Ⅲ

答案:D。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络工程师考试考前冲刺预测卷及考点解析

本书依据最新版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点进行了提炼,并...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊