jjzjj

Fragmentation

全部标签

c++ - 在运行时检测 C++ 中的堆碎片的可移植方法?

我正在编写一个基于qt的c++应用程序,我需要能够检测内存碎片以检查当前系统是否真的可以承受内存负载:程序加载一个大图像(15/21百万像素是范数)在内存中,然后对其执行一些过滤(使用稀疏矩阵)。例如,我在Windows中遇到内存碎片问题,而VMMap在这方面非常有帮助:问题是某些DLL(Wacom平板电脑“wintab32.dll”和UltraMon应用程序)没有重新定位,因此正在拆分地址空间在进程的0x10000000-0x30000000VA处。我想为应用程序提供对碎片问题的某种意识,并想知道提供VMMAP提供的信息的跨平台(linux/mac/win32)方法是否已经存在。

c++ - "Memory Fragmentation"这还是个问题吗?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我有点困惑。在操作系统类(class)中,我们被告知所有操作系统都通过分页或分段处理内存碎片,并且根本没有连续的物理内存分配。操作系统使用不同级别的寻址(逻辑/物理)来避免连续的内存分配。现在here有很多关于它的讨论。我的问题是:这个问题在支持逻辑寻址的操作系统的C++编程中是否真实存在(是否有任何进程仅因为内存碎片而崩溃)?如果是,为什么首先每个操作系统都试图避免连续寻址?

c++ - 关于内存池的问题

我需要对内存池的概念和实现做一些澄清。通过memorypool在维基上,它说alsocalledfixed-size-blocksallocation,...,asthoseimplementationssufferfromfragmentationbecauseofvariableblocksizes,itcanbeimpossibletousetheminarealtimesystemduetoperformance.“可变block大小导致碎片”是如何发生的?固定大小的分配如何解决这个问题?这个wiki描述听起来有点误导我。我认为固定大小的分配或可变大小无法避免碎片化。在内存池上

Android 堆 fragment 策略?

我有一个OpenGLAndroid应用程序,它使用大量内存来设置复杂场景,这显然会导致大量堆fragment。即使没有内存泄漏,也不可能销毁和创建应用程序而不会由于fragment而耗尽内存。(fragment肯定是问题,不是泄漏)这会导致一个主要问题,因为Android习惯于在同一个VM/堆上销毁和创建Activity,这显然会导致Activity崩溃。作为解决这个问题的策略,我使用了以下技术:@OverrideprotectedvoidonStop(){super.onStop();if(isFinishing()){System.runFinalizersOnExit(true)

mongodb - 存储一个变化很大的字符串,从很长到很短::Fragmentation

好的,所以我游戏中的每个玩家在我的玩家集合中都有一个文档,每个玩家都有1个字符串,该字符串是他们游戏状态的序列化字符串。所以这个字符串可以是很长或很短,每个玩家都有很大差异。我有一个没有大量mongo经验的人告诉我,我应该填充集合中的每个字符串,使它们的长度都相同。所以就像在所有中短游戏状态字符串的末尾添加大量的零一样。那么A)这是个好主意吗?B)我什至不完全确定如何找出游戏的最长长度,所以我不确定将它们填充多远以及如果以后的游戏状态超过我的填充长度怎么办?我的friend说他有一个mongo集合因为碎片而不断爆炸,当他实现填充时,所有问题都消失了。哦,我怀疑这很重要,但我的代码是在p

MySQL 优化 20 gig 表

我有一个20gig的表,每天都有大量的插入和更新。这张表也经常被搜索。我想知道MySQL索引是否会变得零散并且可能需要重建或类似的东西。我发现很难弄清楚检查表、维修表或类似表中的哪一个?感谢任何指导,我是数据库新手。 最佳答案 根据您使用的MySQL版本,您可以考虑创建表分区。您可以通过多种方式使用它,通过执行id哈希分区或日期分区。还有一些方法可以从逻辑上将“工作”数据与归档数据分开。考虑一个表示提要的大表。95%的已用数据可能是不到14天或28天的数据,其余数据通常可以放在存档表中。如果能够将数据block划分为多个服务器,那么

.net - 从网络流中读取 : packet fragmentation

我有一台服务器通过NetworkStream.Read管理两个客户端。应用协议(protocol)是:ClientMessage[128Bytes]→来自服务器的响应[128Bytes]现在在服务器端:MyTcpClient.GetStream().Read()是否可能只返回我猜这样的客户端消息足够短,可以放入tcp/ip层上的一个数据包中-但是会不会有某种碎片或随机性呢?NetworkStream.DataAvailable是防御此问题的正确属性吗?在顺利运行数小时后,我有时会遇到奇怪的错误和连接丢失,这指向类似的事情。提前致谢。 最佳答案

Mysql OPTIMIZE TABLE 用于所有碎片表

我想OPTIMIZE所有当前碎片化的表。这些表应该有information_schema.DATA_FREE>0。是否可以在SQL中的一个命令中优化具有此属性的所有表,还是我必须编写外部代码来执行此操作? 最佳答案 你可以这样做:SELECTconcat("OPTIMIZETABLE",table_schema,".",table_name,";")FROMtablesWHEREDATA_FREE>0INTOOUTFILE'/tmp/optimize.sql';SOURCE'/tmp/optimize.sql';或者,如果第一个失败

Mysql OPTIMIZE TABLE 用于所有碎片表

我想OPTIMIZE所有当前碎片化的表。这些表应该有information_schema.DATA_FREE>0。是否可以在SQL中的一个命令中优化具有此属性的所有表,还是我必须编写外部代码来执行此操作? 最佳答案 你可以这样做:SELECTconcat("OPTIMIZETABLE",table_schema,".",table_name,";")FROMtablesWHEREDATA_FREE>0INTOOUTFILE'/tmp/optimize.sql';SOURCE'/tmp/optimize.sql';或者,如果第一个失败

Redis: "mem_fragmentation_ratio"对性能有何影响?

这是我要问你的问题:“mem_fragmentation_rateo”如何影响Redis的性能?我在stackoverflow和redis.io中做了一些调查,但我找不到关于我的问题的明确解释。这本电子书也解释了https://www.datadoghq.com/wp-content/uploads/2013/09/Understanding-the-Top-5-Redis-Performance-Metrics.pdf在第16页,“mem_fragmentation_ratio指标给出了操作系统所使用的内存(used_memory_rss)与Redis分配的内存(used_memor
12