- N +

全方面性能优化面试题,性能优化面试官想听什么

全方面性能优化面试题,性能优化面试官想听什么原标题:全方面性能优化面试题,性能优化面试官想听什么

导读:

汽车之家面试好进去不说一下自己在“汽车之家”面试的经历吧。9月中旬,收到猎头推荐,看薪水不错,就把简历给他,觉得可以试试看。9月28日,初试(笔试加面试),初试通过,HR说还有...

汽车之家面试好进去不

说一下自己在“汽车之家”面试的经历吧。9月中旬,收到猎头推荐,看薪水不错,就把简历给他,觉得可以试试看。9月28日,初试(笔试加面试),初试通过,HR说还有一次复试,约在了节后。复试安排在一个小洽谈室,还是那老一套,自我介绍,工作经历,项目介绍,然后进入提问环节。

(内容较长,可直接跳到结尾看结论)

面试官问:你在之前公司做过系统重构和优化,具体说一下。

我说了一下之前项目的不足:

①服务层和业务逻辑层之间分工不清晰,虽做了分层,但层之间结构混乱,不便于代码维护;

②服务层的角色权限验证,参数验证,异常处理,日志记录等功能在每个方法中重复复制,本来只有几行核心代码的方法,实际却写了几十行,上百行,开发和维护都比较困难。

我的解决方法是:首先对重复逻辑提取基类,提取公共模块,按照AOP思想,制定系统架构,开发人员只负责核心逻辑编写;其次,对不同层次,不同逻辑的代码进行合理分配,放到不同的层中。

然后,又问如何优化系统性能?

我回答:性能优化,首先要找到性能瓶颈,查看日志是最直接的方法,IIS日志,自定义日志,数据库日志,找到性能瓶颈对应解决,对于数据库日志,根据实际情况,可以采用分库分表,或读写分离来提高数据库性能,等等。

接着,他问如果给你一个系统,你会如何去优化?

(现在想想,这其实是在给挖坑呢)

我说:不同的系统面临的问题不一样,但我会依据自己的经验,让系统尽量的逻辑清晰,便于维护。

面试过程当中大部分问题围绕系统重构,性能优化展开的,其他细节的问题就省略,不说了。

对于技术,我个人还是比较自信的,但面试官对我的回答,表现出一种 just so so的感觉,尽管我的方案里没有太牛的东西,但对于应用系统开发来说,这种方案似乎也是最标准的了。而且当我问他有什么更好的方案或这种方案有什么不足时,他却回答不出来,说这只是讨论一下。

出乎我意料的是,到最后的时候,面试官居然说:我们来一拨人,重构一次系统,人走了,又来新人,又重构一次,反反复复,没性能上的提升,现在我们不想再重构系统了。

系统是否需要重构,不是一个人说了算,而且做为项目负责人,对工作负有最终责任,是否要进行优化,你自己都决定不了,还能抱怨别人吗?另外,一种新技术的尝试,并不一定就比之前的方案好,但不能因为这样就放弃技术创新。

面试是一个双方相互评估的过程,对于面试官的技术水平,确实不敢恭维:

①对socket的无知

当我说到app与服务器建立socket连接,时时推送数据时,他的一些问题和对我观点的辩驳,足以证明他根本没使用过socket,并且存在基础概念的认识错误。

(面试结束后我专门查找相关资料,对各自的观点做了验证。)

②对内存数据库认识的欠缺

当我提到将数据全部放入内存时,他反问说:“几亿的数据全部放到内存,能放的下吗?”要知道内存数据也是可以分布式部署的,可以不只在一台主机上,他的这个问题也暴露了他的无知。

③过于依赖SQL Server

“汽车之家”的业务主要依赖于SQLServer。

SQL Server是windows平台下的首选数据库,但对于上亿数据量的互联网应用明显的力不从心,不进行分库分表,读写分离几乎不能适应业务发展需要。技术在发展,类似Hadoop的应用对大数据的处理已经很成熟,死抱着一个工具不放,只会让你的脚步越来越慢。

在面试过程中,面试官曾说到:“做为外人,你可能认为汽车之家很好,团队也很规范。”隐含之意是“汽车之家”并没有外界想像的好,团队内部也矛盾不断。

“汽车之家”的这种面试方式真是让人无语了,一副高高在上的表情,缺乏对被面试人起码的尊重,浪费被面试人的时间,损坏了一个原本高大上的公司的形象。

“汽车之家”有这种人做leader,估计离走下坡路也不远了,看看它跌跌不休的股价就知道了。

其实我也不想跟他讲什么道理,套用豌豆荚的话说:“如果一个人跟你耍流氓,你跟他讲道理,有用的话就见鬼了”。

面试题:oracle数据库优化

oracle数据库优化的话主要有以下几个方面(我接触过的,可能不全面):

1查询语句的优化,这个主要是根据语句和数据库索引的情况,结合查询计划的分析结果,对性能较低的查询语句进行重写,在执行查询前执行表分析语句也可以算这里;

2数据结构优化,这个包括根据实际的应用中业务逻辑,对数据库的结构进行重新设计,或者创建相关索引里提高查询效率;

3数据库设置优化,这方面主要是调整数据库和数据结构的相关参数提高应用访问系统的效率;

4存储结构优化,在数据量较大的情况下,可以考虑通过数据库的存储结构进行优化,比如对数据进行partition,将数据存储在磁盘阵列服务器上等。

我的经验有限,以上是部分建议

返回列表
上一篇:
下一篇: