我正在使用wpf中的实时跟踪日志记录应用程序。我正在从UDP端口读取记录的数据并根据我的模态类转换它。我担心的是,考虑用户是否保持应用程序打开在很长一段时间内,应用程序将使用大量内存。我在可滚动列表中显示日志信息,因此用户可以向上滚动并获取以前的日志。我正在寻找一种设计方法,以便我可以通过最佳的内存使用来提供最佳的结果。那么这种应用的最佳设计方法是什么?
答案 0 :(得分:1)
“实时”意味着只要数据可用应用程序就应该拿起并显示。没有其它的方法。
LogInformation
数据模型,因此您正在显示的实体将需要更少的内存,考虑到显示了大量条目并且可能导致每个单个保存的字节,这可能是显着的改进在MegaBytes中保存的内存,所以请分享一些绑定到UI的实体代码,并指出哪些字段/属性确实需要显示给最终用户在没有用例和标准工作流程知识的情况下,很难提出具体的建议。因此,请提供更多详细信息,了解用户如何使用此应用程序,以便了解更多想法。
答案 1 :(得分:0)
可能有用的一个想法是添加一个“监听器”,看看程序是否被更改,或者在让我们说5分钟看似空闲后弹出窗口会询问您是否要继续。一旦用户点击“确定”
,它就会重新连接那会有用吗?我假设内存使用在日志服务器上。
答案 2 :(得分:0)
好像你有两个要显示的数据。您可以使用UI虚拟化。 VirtualizingStackPanel 可以通过不为所有日志行创建UI元素直到用户滚动到它来执行您想要的操作。一个例子对于stackoverflow来说太长了。网上有很多例子。
http://bea.stollnitz.com/blog/?p=338
另一方面,如果因为日志数据过多而导致内存需求过高。考虑将其写入磁盘上的数据库。