|
|
1
9
对于你的案例,你可能会考虑的一个优化——实际上,我一直在考虑写一篇文章——是结构和
由于你来自C++背景,你知道在C++中,你可以在堆上(使用new关键字并返回指针)或堆栈上(通过将其实例化为基元类型,即。
在我的C++时代,我使用这个技巧创建了一些性能惊人的代码——当然,这是以牺牲更大的堆栈和堆栈溢出的风险为代价的,但仔细的分析设法将这种风险降到了最低。
不过,在你的案例中,这可能值得一看。 |
|
2
5
这是一个很难以一种对你有帮助的方式确定明确答案的问题。这个。NET GC是 非常 擅长根据应用程序的内存需求进行调优。您的应用程序可以在不需要担心内存管理的情况下进行编码,这足够好吗?我不知道。 当然,你可以做一些常识性的事情来确保你不会破坏GC。使用值类型绝对是实现这一点的一种方法,但你需要小心,不要用写得不好的结构引入其他问题。 然而,在大多数情况下,我会说GC会很好地为你管理所有这些东西。 |
|
|
3
3
我见过太多的情况,人们“优化”了他们代码中的垃圾,而不太关心它的编写质量或工作效果。我认为第一个想法应该是让代码解决手头的业务问题。代码应该精心设计,易于维护,并且经过适当的测试。
|
|
|
4
3
随机建议:
您可能在C#中使用的另一种技术是,对于性能不够好的关键部分,降级到本机C++。..然后使用 Dispose pattern 在C#或C++/CLI中,用于保存非托管资源的托管对象。
最后,一定要找到一个好的内存分析器。 |
|
|
5
1
我一直都有同样的想法。
如果你意识到这一点并一直关注,我相信你可以编写不完美的代码。如果你已经开始了。NET/Java,并且之前没有低级编程经验,你很可能会编写非常滥用和无效的代码。
|
|
|
6
1
尽管有垃圾回收器,但坏代码仍然是坏代码。因此,我会说是的。Net开发人员,你仍然应该关心你创建了多少对象,更重要的是编写优化的代码。
|
|
7
1
.NET内存管理非常好,如果需要,能够以编程方式调整GC是很好的。
|
|
|
8
1
|
|
|
9
1
我在代码审查中浪费了很多时间来讨论CLR的细节。最好的明确答案是在您的组织中培养一种绩效文化,并使用工具积极分析您的应用程序。瓶颈将出现,您可以根据需要解决。 |
|
|
10
1
|
|
|
11
1
我希望我是一个“软件传奇”,可以用自己的声音和呼吸来谈论这件事,但既然我不是,我就依靠SL来做这些事情。 我建议安德鲁·亨特在上发表以下博客文章。NET GC会有所帮助: http://www.simple-talk.com/dotnet/.net-framework/understanding-garbage-collection-in-.net/ |
|
|
12
1
即使在性能方面之外 修改传入可变对象的方法通常比基于旧对象返回新可变对象的方式更简洁。声明:
在某些情况下,行为可能相同,但前者只做一件事,后者只做两件事——相当于:
如果
|