所以我正在开发Win2D游戏,并注意到偶尔会跳过一些帧。我以为它是GC,所以我拍了几张内存快照来看看发生了什么。在照顾好我的问题并在比赛开始时分配了所有记忆后,我注意到很多任务< IReadOnlyList<在游戏过程中仍在创建Windows.Storage.StorageFile>> 对象。这也发生在一个空的通用应用程序项目中,在环顾四周之后我发现默认情况下启用了Application Insights并导致了所有这些。
我对Application Insights了解不多,但似乎有些不错。 所以我的问题是:我是否仍然可以使用Application Insights但是阻止它创建所有这些任务对象并访问文件系统?
答案 0 :(得分:3)
ApplicationInsights使用PersistenceChannel,每当生成遥测项目时,将其存储在磁盘上,然后将其读回并发送(如果没有互联网连接,则将其存储回来并稍后尝试)。您可以替换为仅发送遥测的InMemoryChannel(但如果失败,遥测项目将会丢失)。此实现应该更轻量级,因为它不需要存储访问权限,但请注意它也没有重试策略。 所以一开始你会这样做:
TelemetryConfiguration.Active.Channel.Dispose(); // you may need to cast it here to persistence channel
TelemetryConfiguration.Active.Channel = new InMemoryChannel();