Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GHashTable的大小/调整大小_C++_C_Linux_Arrays_Multidimensional Array - Fatal编程技术网

C++ GHashTable的大小/调整大小

C++ GHashTable的大小/调整大小,c++,c,linux,arrays,multidimensional-array,C++,C,Linux,Arrays,Multidimensional Array,这是我的用例:我想使用和使用IP地址作为密钥,并将此IP地址发送/接收的数据的卷作为值。例如,为了查看每个IP地址的卷,我使用一些内核变量成功地在用户空间中实现了整个问题 现在的问题是:假设我有很多IP地址(即500000到1000000个Unique)=>真的不清楚分配给新哈希表的空间和第一个大小(g_hash_table_new()/g_hash_table_new_full())是什么,以及整个事情在背景下是如何运作的。众所周知,调整哈希表的大小时可能需要花费大量时间。那么我们如何处理这些

这是我的用例:我想使用和使用IP地址作为密钥,并将此IP地址发送/接收的数据的卷作为值。例如,为了查看每个IP地址的卷,我使用一些内核变量成功地在用户空间中实现了整个问题

现在的问题是:假设我有很多IP地址(即500000到1000000个Unique)=>真的不清楚分配给新哈希表的空间和第一个大小(
g_hash_table_new()
/
g_hash_table_new_full())是什么,以及整个事情在背景下是如何运作的。众所周知,调整哈希表的大小时可能需要花费大量时间。那么我们如何处理这些参数呢?

无论是
还是
都不允许您指定大小

哈希表的大小仅作为存储在其中的值的数量可用,您无法访问实现中通常使用的实际数组大小

然而,
的存在暗示glib的哈希表使用了一个素数大小的内部数组


我要说的是,尽管一百万把钥匙相当多,但这并不特别。尝试一下,然后测量性能以确定是否值得深入挖掘。

谢谢你的回答,但我真的不知道如何在实际程序中使用“g_spaced_primes_closest()”,所以我应该在声明新哈希表后使用此函数??例如,您认为如何使用它来存储1000个IP@作为密钥?