`
- 浏览:
8952092 次
- 性别:
- 来自:
上海
-
有段时间没有更新blog了,好吧,不是有段时间,是两个月了。先说说这段时间做了些什么事情,因为多少和本文有些关系。大概做了三个方面的事情,除了给小朋友喂饭、玩耍和换尿布之外。
1. 开始参与一个新的项目
因为是新的项目,所以和之前做的东西很不一样,而且不幸,或者应该说是幸运的是这个项目用到了大量的新的技术,准确的说,是对我们做的一些人来说新的技术。每逢这样的时候自然是学习曲线狂陡的一个阶段,而且发现不了解技术细节,很多工作难以开展,不知道怎么测,有些部分目前的工具都不ready,甚至业界也没有很好的方案。这个过程还在继续,不过因为很多的细节和项目的方案有关,目前还不便分享。
2. 回头补课
性能测试和系统稳定性测试一直是自己比较喜欢的方向。但是随着最近的一些工作发现很多地方的做法和理解还停留在比较黑盒的方面,能发现问题,但是很多时候不能更进一步去找到问题出在哪里,也就谈不上给出解决方案。而要达到这样的程度,就要下一个台阶到更底层一点的技术层面来看看。下面会有一些具体的例子聊聊这方面的体会。
3. 和业界同行的交流变多了
参加淘宝的技术嘉年华算是一个开头,借着这个机会认识了很多不同公司的同行,很多都非常的优秀和富有经验,另外就是和一些前同事的交流,知道不同组织的一些做法。在一个地方做久了,心中总会有一些危机感,担心自己积累的技术,方法和经验是不是会局限在狭小的领域而变得没有通用性,另一个方面就是想知道别人是怎么做的。最近的这些交流起到了很大的作用,不过结果其实也在意料之中,局限是一定有的,另一方面很多大家遇到的问题和一些思路做法很相似,也有一些东西被证明是有一定适用范围的。围绕着上面的三个方面,每每要提笔写一篇blog的时候总是会有些犹豫,觉得有些地方讲得不够,或者有些时候想先学习再分享。下面说说最近花时间比较多的两个技术方向。一个是关于程序运行时的内存使用和管理。这个topic的来源其实由来已久,比如谈到系统或者某个进程的内存使用情况,包括内存泄露问题的时候,都觉得有些含糊。因为操作系统(例如Linux)会给你一堆的关于内存使用的指标,搞不清楚具体的含义总是心里不踏实,也不能乱讲对吧。另外更进一步,这些内存使用和真正的代码的情况是如何对应的,比如栈和堆的分配使用等。要了解到这些,可能需要进一步了解程序的编译链接和加载。发现这一块有很多值得学习和研究的地方,顺便对于静态和动态链接这一部分也有了更多的一些认识。学习的方法是看书和实践。书是下面几本:
- 深入理解计算机系统
- 链接器和加载器
- 程序员的自我修养 – 链接、装载和库
实践就是自己写一些C/C++的小程序,在执行和调试的过程中加以观察和验证,加深理解。第二个方面是关于高并发的服务器这个其实和性能稳定性等也有很大的关系。因为大部分经验都是在做服务类的产品,都要支持比较高的并发。但是之前的测试工作都是黑盒为主,用工具设计好流量去压,看被测的产品能否达到预期的目标或者有没有什么异常的行为。这样的工作有意义,但是无法突破,而突破,我的理解就是要知道为什么它能或者不能支持高的并发,好的响应时间。而不只是黑盒的判断,因为很多时候,性能从架构和设计的时候就已经被框定了大致的范围。这一块的学习也还在继续中,方法,还是看书加实践,另外也包含请教其他同事,比自己独自搜索和摸索的效率要高。说到资料,自然要提R. Stevens的经典,《UNIX网络编程》。还有网上很多经典的文章,比如C10K等。实践自是必不可少,之前只是写过最简单的socket client和server(这方面的hello world),以及一些从测试角度的了解。觉得这样很不够,需要自己动手去获得更深入的理解。目前比较focus在Linux上,所以也顺便花时间熟悉更细节的Linux网络方面的东西。这些东西对很多人来说可能是比较基本的,是的,应该掌握的。最近有个感受就是我们很多时候被一些所谓的新的技术吸引了,反倒不愿意静下来把这些影响深远的技术弄得更清楚一些。另一方面,对这些有长久生命力的技术的理解,不仅可以帮到现在的工作,而且对于新技术的理解和应用也会很有帮助。比如深入理解了传统的socket编程,select模型,再去学习epoll等技术肯定会更轻松。除了工作和项目的需要以外,了解这些技术的细节也能给人带来很大的满足感,知道一个东西是怎么work的总是充满了吸引力。其实从另外一个角度,我在想,可能还有一个原因,那就是国内的IT行业经过这么些年的发展和积累,已经可以给工程师们提供一个稍微静下心来研究产品和技术的环境,对把一个东西做得更好和更有效率的价值也有了更多的认可。好吧,这里算是个开头,后面的一些学习和实践再来分享。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
深入理解MySQL核心技术__中文版 详细介绍myslq的学习 有兴趣的同学可以了解一下
为了让更多进入Oracle领域的朋友能够快速了解和掌握Oracle技术,让具备一定经验和积累的Oracle从业人员继续深入学习,作者倾力撰写了本书。 本书作者活跃于国内著名Oracle技术论坛ITPUB(www.itpub.net),并...
从业人员继续深入学习,作者倾力撰写了本书。 本书作者活跃于国内著名Oracle技术论坛ITPUB(www.itpub.net),并全力打造国内极具影响力的个 人Oracle技术站点Eygle.com(www.eygle.com )。本书从基础出发,...
本书内容更涉及Oracle数据库的多个版本8i/9i/10g/11g 将Oracle的版本变化和功能改进 一以贯之地展现出来 让大家看到这些变革的真正原因以及Oracle的不断技术创新 通过真实案例的学习 更可以加深大家对现实环境的...
课程重点介绍了分布式系统的性能优化技术。通过学习课程资料和实践项目,我...这门课程对于我职业发展和提升技术能力起到了重要的推动作用,我将继续深入学习和应用所掌握的知识,不断提升自己在分布式系统领域的能力。
山头乡继续深入开展"安全生产年"活动实施方案.docx
今年,大会将继续秉承分享IT最佳应用实践的宗旨,围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨。 一直以来,数据库架构实践、数据库优化应用等,是备受大家关注的传统...
作为一个AI模型,GPT-5.0将会继续在语言模型的性能上有所进步,预计其将更准确地理解人类语言,并能够更好地完成各种语言任务。 以下是一些可能的进步和影响: 更加准确的自然语言理解:GPT-5.0将会进一步提高自然...
综述了不同高级氧化技术,Fenton氧化技术、光催化氧化技术、电化学氧化技术、超声氧化技术、臭氧氧化技术的原理、特点以及在抗生素废水处理中的实际应用,提出今后应继续深入进行高级氧化技术处理抗生素废水的动力学...
未来,AI技术将继续深入发展,与物联网、大数据等结合,催生更多创新应用。但挑战亦存,如算法偏见、失业问题等需引起关注。总之,AI技术为人类带来巨大便利,但也需审慎应对其带来的挑战,确保技术与社会和谐共生。
然后,我们会在SpringBoot环境中,继续展开Spring Security更深度的学习,这时的认证,也会转化成分布式方式。 springSecurity认证流程图【附带记住我功能】: 3、课程亮点 Springsecurity在两种不同的开发模式中...
达到高素质劳动者和高等技术专门人才所必需具备的网络管理与维护的基本知识的基本应用技能,使学生理解网络管理与维护的内涵,及时了解网络技术新的发展趋势,为就业和继续学习打下良好的基础。 (二)课程作用 ...
WRF模型作为当今最先进的气象预报和模拟工具之一,在科研、业务预报以及灾害预警等领域发挥着不可替代的作用...未来随着气象预报和气候模拟技术的不断发展,WRF模型将会继续得到优化和扩展,为人类社会带来更多的福祉。
今年,大会将继续秉承分享IT最佳应用实践的宗旨,围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨。 一直以来,数据库架构实践、数据库优化应用等,是备受大家关注的传统...
通过本书可以了解到Spark特点和使用的场景,如果希望继续深入学习Spark知识,该书也是很好的入门选择。 (2) Spark开发人员 如果要进行Spark应用的开发,仅仅掌握Spark基本使用方法是不够的,还需深入了解Spark的...
今年,大会将继续秉承分享IT最佳应用实践的宗旨,围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨。 一直以来,数据库架构实践、数据库优化应用等,是备受大家关注的传统...
今年,大会将继续秉承分享IT最佳应用实践的宗旨,围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨。 一直以来,数据库架构实践、数据库优化应用等,是备受大家关注的传统...
今年,大会将继续秉承分享IT最佳应用实践的宗旨,围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨。 一直以来,数据库架构实践、数据库优化应用等,是备受大家关注的传统...