
Windows 10 支持逐步取消:克服潜在问题
随着 Windows 10 支持期即将结束,微软最近向用户发出了重要提醒。该公司还公布了一份由于系统要求未满足而无法升级到 Windows 11 的 Surface PC 列表。他们的建议很明确:考虑购买一台新设备,最好是 Copilot+ PC,以确保最佳性能。
用户对操作系统变化的反应
鉴于即将到来的过渡,许多家庭用户正在讨论未来的策略。仍在使用 2015 年之前系统且无法支持 Windows 11 的用户正在考虑回归 Windows 8 或 8.1。他们之所以做出这一选择,很大程度上是因为他们认为旧版操作系统的响应速度比 Windows 10 更快。然而,值得注意的是,Windows 8.1 的支持生命周期已于 2023 年 1 月结束,因此尽管速度很快,但安全性有所下降。
系统运行缓慢的根本原因
许多用户遇到设备性能低下的问题,通常将此归咎于过时的硬件。David Uzondu 发表了一篇富有洞察力的文章,题为“糟糕的软件是你认为需要新硬件的原因”,强调了软件优化的重要性。微软高级升级工程师 Matt Hamrick 最近发表的一篇博客文章也表达了同样的观点,重点探讨了内存管理问题如何严重影响系统性能。
内存管理和应用程序性能
Hamrick 在他的博客中讨论了软件优化不佳导致的内存泄漏和内存不足 (OOM) 情况的影响。他以一个更新的. NET 7 应用程序为例,说明了错误配置的reloadOnChange
参数如何导致严重的性能问题。如果将参数设置为“true”而不是“false”,这种疏忽可能会导致内存泄漏,从而导致系统性能下降,甚至应用程序崩溃。
理解reloadOnChange
参数
该reloadOnChange
参数通知系统监视特定文件中的任何设置更改。此功能支持动态重新加载,允许应用程序立即访问修改后的值,而无需重启。遗憾的是,滥用此功能可能会导致内存逐渐耗尽,从而对系统效率产生不利影响。
代码优化专家见解
Hamrick 强调了正确的编码实践的重要性,他解释道:
这段代码运行越频繁,其影响就越大。问题并不明显,但触发因素如下
reloadOnChange: true
:….
reloadOnChange: true
实际上仅用于应用程序启动期间,如果正在使用自定义配置文件,而 ASP. NET 本身尚未自动使用(假设这些默认值尚未更改)。相反,如上所述,有些人错误地在控制器操作或中间件组件之类的东西中使用了此代码来访问一些所需的配置值,而不知道它在后台做什么(也不知道他们通常寻找的配置已经被加载(和监控)到应用程序的配置系统中)。
诊断内存问题的工具
通过使用包括 WinDbg 在内的各种调试工具,Hamrick 成功识别出问题代码中的缺陷。感兴趣的朋友可以前往微软技术社区网站查看完整的博客文章。
值得注意的是,虽然 Hamrick 的分析重点关注的是使用. NET 7 构建的应用程序,但所讨论的问题并非此版本独有。它们也可能影响使用受支持的. NET Framework 版本创建的应用程序。
发表回复