. net应用程序.照看比特和字节

本文关键字:字节 应用程序 net | 更新日期: 2023-09-27 17:49:53

我很快就会开发一个Win Forms应用程序,将在交易员的机器上运行,主要关注的是让应用程序使用尽可能少的内存。每一行代码都需要牢记这一点。

我需要考虑哪些方面?

当然,你会说做任何复杂的处理,例如数据库,而不是客户端,但还有什么?

我正在寻找这样的建议,不要使用int64而不是int32,如果你不打算经常搜索集合,使用数据结构x而不是字典,更频繁地调用垃圾收集器,不要在客户端缓存数据等…我只是在胡编乱造希望你能明白我的意思

欢呼

. net应用程序.照看比特和字节

除非您使用大量数据,否则您不会看到int64和int32之间的巨大差异。1000个int32和1000个int64只有大约4K的差别。整数值的标准通常是映射到int32int,所以我建议使用它,除非你有特定的16或64需求。

这是Rico Mariani的一篇很棒的文章,他是微软的性能主管。他文章中的链接现在已经死了,但他说97%的代码不需要过早优化。你可以花一个星期的时间来调整你的应用程序,找到最好的数据结构,但是对托管在月球上的web服务的调用会减慢你的整个应用程序。首先担心web服务调用,一旦你调整了,你就可以担心数据类型优化。

编写规范的人理解内存绑定应用程序的真正含义吗?你宁愿有一个应用程序,每次需要10秒从数据库检索可缓存的数据。或者你宁愿让应用程序预缓存数据并"浪费"2 MB内存?我支持后者,我想大多数用户也是。

但是你有一个规范要遵循,所以我不说教了。看看这篇MSDN杂志上关于。net优化的文章。我想你会在里面找到一些很好的建议。

使用CLR内存分析器查看内存的使用情况。

在语义上可以接受的情况下,使用结构体而不是类来处理大量的内容。如果你有结构体数组,请注意对齐这个词和相关的开销。net可能会对内存做一些你意想不到的事情,所以在严重依赖它们之前测试一下你的假设。