gpt4 book ai didi

c++ - 如何减少 C++ 中数据的内存大小?

转载 作者:太空狗 更新时间:2023-10-29 23:26:33 24 4
gpt4 key购买 nike

我正在研究 C++ 并使用 multimap 来存储数据。

 struct data
{
char* value1;
char* value2;

data(char* _value1, char* _value2)
{
int len1 = strlen(_value1);
value1 = new char[len1+1];
strcpy(value1,_value1);

int len2 = strlen(_value2);
value2 = new char[len2+2];
strcpy(value2,_value2);
}
~data()
{
delete[] value1;
delete[] value2;
}
}

struct ltstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};


multimap <char*, data*, ltstr> m;

示例输入:

  Key               Value
ABCD123456 Data_Mining Indent Test Fast Might Must Favor List Myself Janki Jyoti Sepal Petal Catel Katlina Katrina Tesing Must Motor blah blah.
ABCD123456 Datfassaa_Minifasfngf Indesfsant Tfdasest Fast Might Must Favor List My\\fsad\\\self Jfasfsa Katrifasdna Tesinfasfg Must Motor blah blah.
tretD152456 fasdfa fasfsaDfasdfsafata_Mafsfining Infdsdent Tdfsest Fast Might Must Favor List Myself Janki

输入中有 2700 万个条目。输入大小 = 14GB

但我注意到内存消耗达到 56 GB。我可以知道如何减少内存大小吗?

最佳答案

如果您不能减少实际存储的数据量,您可能想尝试使用开销更小的不同容器(map 和 multimap 有相当多的开销)或者想办法只保留一部分内存中的数据。

您可能想看看这些库:

关于c++ - 如何减少 C++ 中数据的内存大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14899041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com