|
|
1
4
当进程终止时,操作系统会自动回收内存。
C++的内存管理器,落后者
|
|
2
3
如果您只关心内存,则可能不需要调用
但是你想避免 memory leak s、 所以你最好好好打扫。在某些操作系统上,您可以使用以下工具: valgrind 帮助检测此类泄漏(因此您不希望他们发出虚假警告)。
另请阅读
RAII
. 在现实生活中,的构造函数(或其他方法)
考虑使用 smart pointers . 数据结构的活性是 整个程序 所有物我建议阅读 GC handbook ,至少要理解 garbage collection (这可以看作是管理资源的一种方式,而不仅仅是管理原始内存)。 (实际上, 这取决于很多 :如果你正在与数百名其他程序员一起编写一百万行代码程序,那么你需要比单独编写一个很小的源文件程序更加小心;如果你编写一个神经手术机器人,它与桌面应用程序不同,等等。。。。so YMMV) |
|
|
3
3
除非你是在开发低水平的软件,否则你是在操作系统下工作的。该操作系统管理真实内存,为应用程序提供映射到真实内存的虚拟内存。 应用程序关闭(进程终止)后,操作系统会删除虚拟内存映射,释放该进程的所有内存资源。 |
|
|
4
2
答案是,Windows应该在你之后清理内存,如果它不这样做,就应该被视为操作系统中的一个bug。对于Linux和任何其他允许您过早终止进程的系统来说也是如此。 原因是,如果我理解正确的话,您描述的情况与以下情况更为相似:
因此,即使你做了你应该做的一切,并在自己正确清理后,由于操作系统选项过早地杀死你的进程,它会导致内存泄漏。 最后,一个重要的澄清,这并不意味着你可以忽略所有的话题,你应该尽最大努力在自己之后清理,不要指望其他系统在你之后清理。 |
|
|
5
2
内存分配有两个不同的级别:
实施
然而,未能
|
|
|
SkyBlue · Java Spring服务的内存/垃圾收集器问题 2 年前 |
|
|
Guy_Hanan · 一个关于C++程序内存泄漏的问题 2 年前 |
|
|
yeerk · 在Python中跟踪特定对象的引用(内存泄漏) 2 年前 |
|
|
Priyanshu Sinha · Django内存泄漏/工人人数减少 2 年前 |
|
|
lHumanizado · Golang defer并不总是执行 2 年前 |