首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初级工程师关于内存管理的问题

初级工程师关于内存管理的问题
EN

Software Engineering用户
提问于 2012-07-10 17:06:41
回答 5查看 1.1K关注 0票数 9

自从我开始担任入门级软件开发人员以来,已经有几个月了。现在我已经通过了一些学习曲线(例如语言、行话、VB和C#的语法),我开始专注于更深奥的主题,比如编写更好的软件。

我向同事提出了一个简单的问题,回答是:“我把注意力集中在错误的事情上。”虽然我尊重这位同事,但我并不认为这是一件值得关注的“错误的事情”。

下面是代码(在VB中),然后是问题。

注意:函数GenerateAlert()返回一个整数。

代码语言:javascript
复制
Dim alertID as Integer = GenerateAlert()
_errorDictionary.Add(argErrorID, NewErrorInfo(Now(), alertID))    

相对于..。

代码语言:javascript
复制
 _errorDictionary.Add(argErrorID, New ErrorInfo(Now(), GenerateAlert()))

我最初写了后者,然后用"Dim alertID“重写了它,这样其他人可能会发现它更容易阅读。但我的担心和问题是:

如果用Dim AlertID写这个,它实际上会占用更多的内存;有限但更多,这个方法应该被多次调用吗?它会导致问题吗?.NET将如何处理这个对象AlertID。在.NET之外,应该在使用后手动释放对象(在子的末尾附近)。

我想确保我成为一个知识渊博的程序员,而不仅仅是依靠垃圾收集。我是不是想太多了?我是不是把注意力集中在错误的事情上了?

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2012-07-10 17:19:26

“过早的优化是编程中所有邪恶(或至少大部分)的根源。”-唐纳德·克努斯

当涉及到您的第一次通过,只需编写您的代码,以便它是正确和干净的。如果稍后确定您的代码是性能关键的(有一些工具可以确定这个称为分析器),则可以重写它。如果您的代码没有被确定为性能关键,那么可读性就更重要了。

值得深入研究这些性能和优化主题吗?当然,但如果没有必要的话,也不能用贵公司的钱。

票数 24
EN

Software Engineering用户

发布于 2012-07-10 17:22:00

对于你的普通.NET程序来说,是的,这是过度思考。在某些时候,您可能会想要深入了解.NET内部到底发生了什么,但这是相对罕见的。

我遇到的困难之一是从使用C和MASM切换到90‘年的经典VB编程,我习惯于优化所有的大小和速度。我不得不放弃这种想法,让VB去做它的事情,以使其有效。

票数 5
EN

Software Engineering用户

发布于 2012-07-10 17:27:19

正如我的同事常说的:

  1. 让它起作用
  2. 修复所有的错误,使之完美无缺。
  3. 让它成为S.O.L.I.D。
  4. 如果执行速度慢,则应用优化

换句话说,永远记住亲吻(保持简单愚蠢)。因为过度工程,过度思考某些代码逻辑可能是下一次改变逻辑的一个问题。然而,保持代码的整洁和简单总是很好的实践。

但是,根据时间和经验,您将更好地了解哪些代码会有哪些气味,并且很快就需要进行优化。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/156290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档