0neKing2017
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
8.性能注意事项和最佳实践
内存管理是软件开发的一个重要方面,它直接影响应用程序的性能、可靠性和可扩展性。在 .NET 生态系统中,开发人员必须根据正在开发的应用程序类型考虑不同的内存管理策略。桌面应用程序在资源有限的单台机器上运行。高效的内存使用对于避免耗尽系统资源至关重要。了解 .NET GC 相对于框架(Windows Forms、WPF 或 WinUI)的行为非常重要。每个框架都有细微差别,因此可以采用不同的编码技术来确保应用程序高效运行。原创 2024-08-04 08:17:04 · 139 阅读 · 0 评论 -
7.低级编程
本章深入介绍了低级编程的各种技术和概念,主要涉及编写不安全代码和与非托管代码交互的代码。它涵盖了内存分配、指针、固定语句和互操作机制等重要主题,包括 P/Invoke、COM Interop、Interop Marshaling 和SafeHandle类。我们首先回顾了什么是托管和非托管内存,以及如何分配 GC 不管理的内存。当我们有需要尽可能高性能的操作时,这一点变得至关重要,这意味着我们希望减少 GC 参与分配和释放内存的性能开销。原创 2024-08-04 08:15:16 · 74 阅读 · 0 评论 -
6.内存分析和优化
识别分配模式涉及了解如何以及在何处为对象和数据结构分配内存。这可以帮助开发人员优化内存使用,提高性能,并减少与内存泄漏和过度垃圾收集相关的问题。关于垃圾收集,我们现在知道这是 .NET 开发中的一个标志性功能,GC 在评估哪些对象仍在使用以及哪些对象超出范围后会自动为我们释放内存。我们还知道我们可以编写代码来消除 GC 的影响,这就是我们最终出现内存泄漏的原因。由于很难轻松检测到错误代码的执行位置,我们可以将代码片段添加到代码中的不同执行点,以尝试评估是否发生了垃圾收集以及发生了多少次。GC0。原创 2024-08-04 08:12:51 · 187 阅读 · 0 评论 -
5.高级内存管理技术
本章介绍了并发、多线程和异步编程范式中的内存管理。每个部分都提供了实用的见解和全面的理解,以适应现代软件开发在 .NET 中的特定需求和复杂性。我们回顾了 .NET 如何在多个线程并行运行的环境中处理内存,以及 GC 如何寻求高效和并发地管理内存,重点是最大限度地减少暂停时间和最大限度地提高吞吐量。我们讨论了并发编程挑战,例如竞争条件、死锁和饥饿,以及解决方案,例如锁定机制、使用不可变对象以及使用 .NET 提供的并发集合来减轻同步开销并改善内存管理。原创 2024-08-04 08:09:15 · 91 阅读 · 0 评论 -
4.内存泄漏和资源管理
本章探讨了检测应用程序中内存泄漏的各种技术和工具。它强调了识别内存泄漏迹象的重要性,例如随着时间的推移内存使用量逐渐增加、应用程序速度变慢或由于资源耗尽而崩溃。我们还回顾了内存分析,使用 .NET 特定的工具和方法来检查 .NET 应用程序如何利用内存。我们介绍了使用 Visual Studio 中的内存使用情况分析器和诊断工具。这些工具为我们提供有关应用程序在调试期间的执行情况的实时反馈,对于早期内存泄漏检测非常有用。然后,我们回顾了如何使用 .NET CLI 中的扩展来分析数据转储和内存使用情况。原创 2024-08-04 08:06:47 · 213 阅读 · 0 评论 -
3.内存分配和数据结构
本章探讨了内存分配和优化概念的几个维度。反复出现的主题是不同的构造为我们的算法和应用程序带来不同的好处。我们首先讨论了 Java、C 和 C++ 中内存分配的基础知识,因为它们是基础语言,是 C# 的有力竞争对手。我们看到了 C 和 C++ 将处理内存分配和释放的责任放在开发人员手中。相比之下,Java 和 .NET 采用自动清理过程并遵循类似的理念。我们还深入研究了各种 .NET 数据结构,例如数组、列表、字典和更专业的集合,例如SpanMemory和并发集合。原创 2024-08-04 08:02:07 · 350 阅读 · 0 评论 -
2.对象生命周期和垃圾回收
在本章中,我们更深入地了解了垃圾收集、对象分配和释放,以及一些确保我们编写高效应用程序的技术。了解系统中的对象和引用生命周期可以帮助我们作为开发人员在编写代码时做出正确的决策。我们始终希望确保,虽然 .NET 运行时为我们提供了一个出色的后台工具来自动清理我们的混乱,但我们也不会制造不必要的混乱。CLR 管理对象在内存中的分配方式,并保留一个连续的块以满足应用程序的需求。在这个连续的块中,根据实际进程的需求创建和清理对象。保留一个连续块的显著优势是几乎没有碎片。这使得在需要时很容易找到对对象的引用。原创 2024-08-04 08:00:07 · 76 阅读 · 0 评论 -
1.内存管理基础知识
现代计算机旨在在应用程序运行时存储和检索数据。每台现代设备或计算机都旨在允许一个或多个应用程序在读取和写入支持数据的同时运行。数据可以长期或短期存储。对于长期存储,我们使用硬盘等存储介质。这就是我们所说的非易失性存储。如果设备断电,数据会保留下来,以后可以重新使用,但这种类型的存储并未针对高速情况进行优化。除了需要长时间存储的数据外,应用程序还必须在进程之间存储数据。当应用程序执行各种操作时,数据会不断被写入、读取和删除。这种数据类型最好存储在易失性存储或内存缓存和数组中。原创 2024-08-04 07:55:52 · 253 阅读 · 0 评论